Possível pegar URLs no linux?

6

Existe um ótimo programa para windows (URL Snooper: link ) que permite que você ver todos os URLs solicitados na máquina.

Existe algum programa desse tipo no linux (preferencialmente na linha de comando)

    
por simonwjackson 08.11.2009 / 09:31

4 respostas

11

Parece que o URL Snooper não se aplica apenas a URLs solicitados na máquina , mas também a URLs ocultos na origem HTML de algumas páginas, que não são necessariamente solicitadas ainda. Para este último veja também " Como baixar a lista de arquivos de um servidor de arquivos ? "aqui no Super User. Ou, no Firefox, veja o menu Ferramentas »Informações da página» Mídia ou use complementos como Vídeo DownloadHelper ou UnPlug . O seguinte aplica-se a ver todos os URLs que são realmente solicitados.

A linha de comando ngrep poderia fazer isso, mas fornece muito mais detalhes, então você provavelmente desejaria .

Como: ele não mostrará apenas o URL digitado na barra de localização de um navegador, mas toda a solicitação HTTP. (Então: o endereço IP como resolvido pelo navegador antes de realmente fazer a solicitação e, em seguida, a solicitação HTTP que o navegador envia para esse endereço IP.) E: ele também mostrará isso para cada imagem etc. usada na página resultante.

Você pode precisar instalar ngrep , como em uma instalação padrão do Ubuntu:

sudo apt-get install ngrep

Para capturar todas as solicitações HTTP GET para a porta 80:

sudo ngrep -W byline -qilw 'get' tcp dst port 80

Ainda assim, isso mostra a solicitação inteira. (Tente você mesmo, se for um Superusuário!) Para limitar ainda mais essa saída para mostrar apenas as linhas com -> , get ou host :

sudo ngrep -W byline -qilw 'get' tcp dst port 80 \
  | grep -i " -> \|get\|host"

Ou, para capturar todos os pedidos para a porta 80, mas ignorar aqueles com o conjunto de cabeçalhos Referer (como definido ao solicitar imagens incorporadas etc., mas também definido ao clicar em um link em uma página da web , assim, somente mostrando solicitações digitadas diretamente na barra de localização de um navegador ou abertas em uma nova janela ou abertas a partir de um marcador ou e-mail):

sudo ngrep -W byline -qilwv 'referer' tcp dst port 80 \
  | grep -i " -> \|get\|host"

Além disso, ferramentas sniffer como Wireshark têm opções de linha de comando. E, apenas como um aparte e muito mais mais básico, o tcpdump está instalado na maioria das distribuições Linux:

sudo tcpdump -Alfq -s 1024 \
  'tcp dst port 80 and ip[2:2] > 40 and tcp[tcpflags] & tcp-push != 0' \
  | grep -i " > \|get\|host"
    
por 08.11.2009 / 13:26
4

Também posso recomendar url-sniff por Pawel Pawilcz. É um script Perl leve que envolve muito bem o ngrep . Suporta saída colorida também. Aqui você encontrará uma captura de tela. Ele oferece uma interface simples para detectar todos os URLs solicitados.

    
por 08.11.2009 / 20:07
1

Você pode usar um proxy HTTP, como Privoxy , mas terá que configurar seu navegador para usá-lo - ele não faz t bisbilhotar o tráfego de rede. Faz um log de URLs acessados que você pode ver com um editor de texto.

    
por 08.11.2009 / 11:02
0
  1. Execute um proxy que registre as solicitações conforme sugerido pelo navilon. Você não precisa configurar nada no lado do cliente se optar por um proxy transparente.
  2. Execute um sniffer no gateway.
por 08.11.2009 / 11:16