如何对此应用多线程?

时间:2018-07-12 11:06:46

标签: python multithreading

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,并找到了国家/地区以及纬度和经度。


这是我要打印的任务

  • IP地址
  • 域名
  • 国家
  • Lat&Long

    以表格或Excel工作表之类的方式:-


S.No。 IP域名所在国家和地区


是否可以更快地打印IP? socket.gethostybyaddr花费了很长时间,到目前为止,我已经看到 adns模块线程可以实现更快的反向dns,但我不知道如何实现它们。 / p>

0 个答案:

没有答案