URL de recherche de la liste des adresses IP

Mon journal du routeur enregistre l'activité par adresse IP, mais je veux voir les adresses URL correspondantes à la place. Existe-t-il un moyen de dériver les URL des IP – en vrac / lot – sans devoir le faire manuellement / individuellement une ligne à la fois?

Si vous avez une liste, vous pouvez le faire très facilement sur n'importe quel système d'exploitation à l'aide du module de socket intégré de Python .

 import socket socket.gethostbyaddr('198.252.206.16') 

Cela revient:

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

Donc, scripter ce qui ne serait pas du tout difficile, il suffit d'avoir un IP par ligne dans un fichier et faire quelque chose comme:

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

Bien sûr, vous pouvez ajuster la sortie pour écrire l'adresse IP et le nom de domaine dans un autre fichier si vous le désirez.

Cependant, comme le souligne @ScottChamberlain – cela ne résolut pas toujours pour le site qui partage une adresse IP (sous-domaines et inclus).

Supposons que vous avez un fichier texte ips.txt avec une liste d'adresses IP:

 $ cat ips.txt | xargs host 

Ou vous pouvez écrire un script bash élégant pour formater les résultats:

 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