URLs de pesquisa da lista de endereços IP

0

Meu log do roteador registra a atividade por endereço IP, mas quero ver os endereços de URL correspondentes. Existe uma maneira de derivar as URLs dos IPs - em massa / lote - sem ter que fazê-lo manualmente / individualmente, uma linha de cada vez?

    
por Francisco 23.08.2013 / 00:54

2 respostas

1

Se você tem uma lista, você pode fazer isso facilmente em qualquer sistema operacional usando Python embutido no módulo socket .

import socket
socket.gethostbyaddr('198.252.206.16')

Isso retorna:

('stackoverflow.com', ['16.206.252.198.in-addr.arpa'], ['198.252.206.16'])

Então, scriptifything que não seria difícil, basta ter um ip por linha em um arquivo e fazer algo como:

import socket

fi = open('iplist.txt')
for line in fi.readlines():
    print( socket.gethostbyaddr( line )[0] )
fi.close()

Claro, você pode ajustar a saída para gravar o IP e o nome do domínio em outro arquivo, se assim desejar.

No entanto, como aponta o @ScottChamberlain - isso nem sempre pode resolver para sites que compartilham um IP (subdomínios e outros incluídos).

    
por 23.08.2013 / 01:31
0

Suponha que você tenha um arquivo de texto ips.txt com uma lista de endereços IP:

$ cat ips.txt | xargs host

Ou você pode escrever um elegante script bash para formatar os resultados:

for ip in $(cat ips.txt); do
    domain_names=$(host $ip | grep "domain name" | awk '{print $5}' | tr ".\n" " ")

    # test first char of domain names
    if [ -n ${domain_names:0:1} ]; then
        echo "$ip $domain_names" 
    else
        echo "$ip not found"
    fi
done
    
por 23.08.2013 / 03:03

Tags