Supondo que você quer dizer uma URL HTTP comum, é possível, mas exige que você digite manualmente a solicitação HTTP. Se o URL exigir um HTTP POST com um formulário com codificação de URL ou procurar cabeçalhos específicos, isso pode ser bastante complicado.
Você precisará fornecer uma solicitação HTTP válida para o stdin do netcat. A ideia geral é:
Execute o comando nc example.com 80
O netcat começará a ler a partir de stdin
, e o que você digitar ou colar no terminal será enviado pela rede para o servidor remoto na porta selecionada (80 é a porta HTTP padrão).
Agora você precisa digitar ou colar uma solicitação HTTP, como:
GET / HTTP/1.1
Host: example.com
User-Agent: netcat
Você também precisará de algumas novas linhas no final, então pressione enter repetidamente até obter a resposta HTTP de volta. Então você terá que analisar manualmente a resposta.
O netcat funciona na camada TCP, portanto, qualquer protocolo baseado em HTTP pode tecnicamente ser usado com o netcat, mas para protocolos que não se adequam à entrada humana (como ssh e https), pode ser difícil usar se você não são scripts de um programa. E se você está escrevendo um programa, por que você não está apenas usando soquetes TCP normais?
As limitações do netcat para este propósito são as seguintes:
- O netcat não entende HTTP, FTP, HTTPS, SSH ou qualquer outro protocolo de camada de aplicativo. Qualquer que seja o script, o programa ou a codificação manual usada, essa entrada precisará ter conhecimento suficiente do protocolo de fio da camada de aplicativo para interagir adequadamente com o servidor.
- Até mesmo protocolos simples como HTTP podem ter complicações que exigem conhecimento detalhado do protocolo - codificação em partes, formulários codificados em url, comportamento diferente dependendo dos cookies fornecidos, agente do usuário, etc. e HTTPS que requerem um handshake SSL bem-sucedido. Não conheço ninguém que possa digitar manualmente um handshake SSL usando apenas o cérebro deles:)
- Como o netcat é burro, ele fornece vantagens no apenas ao usar um soquete TCP programático se você estiver escrevendo um programa. Se você está apenas digitando no terminal, é mais fácil usar um programa que suporte protocolos adequados da camada de aplicação, como wget, curl, lftp, ssh e assim por diante.