import socket
import ipaddress
import geocoder
from ipaddress import IPv4Address
def makeaddr(a,b,c,d):
return ipaddress.IPv4Address(bytes([a,b,c,d]))
def makeaddr1(a,b,c,d):
return ipaddress.IPv4Address(bytes([a,b,c,d]))
print("S.No.\tIP\tD.N\tLat&Long\t City")
i=0
for x in range(0,256):
try:
i = i+1
a = makeaddr(x,x,x,x)
a = str(a)
host = socket.gethostbyaddr(str(a))
hostname = host[0]
hostaddr = host[2]
b = makeaddr1(x,x,x,x)
b = str(b)
g = geocoder.ip(b)
print(i,"\t",hostaddr,"\t",hostname,"\t",g.latlng,"\t",g.city)
except:
print(i,"Host not found")
这段代码基本上为x.x.x.x生成了从0-255的IP,并找到了国家/地区以及纬度和经度。
这是我要打印的任务
Lat&Long
以表格或Excel工作表之类的方式:-
S.No。 IP域名所在国家和地区
是否可以更快地打印IP? socket.gethostybyaddr花费了很长时间,到目前为止,我已经看到 adns模块和线程可以实现更快的反向dns,但我不知道如何实现它们。 / p>