使用 IPy 模块做 ip 和网段包含的判断 官方样例 from IPy import IP IP('192.168.1.12') in IP('192.168.1.0/24')
因为 IP 地址和网段很多,所以写了函数
def ipcompare(): ip_list=[] ip_net=[] result=open(r'D:\Python\IP 地址处理\results.txt',"w+") with open(r'D:\Python\IP 地址处理\iplists.txt','r') as lists: for line in lists: ip_list.append(line.rstrip("\n")) with open(r'D:\Python\IP 地址处理\ipnets.txt','r') as nets: for line in nets: ip_net.append(line.rstrip("\n")) for i in ip_list: for n in ip_net: if IP(i) in IP(n): print(f'{n} nets include ipaddress {i}',file=result)
这么写的执行好慢,要 25 分钟才出结果 10 万个 IP 地址,400 个网段,相当于要做 100000*400 次套用 IP('192.168.1.12') in IP('192.168.1.0/24') 来做判断 抄了网上几段 threading 和 multiprocessing 来尝试加快执行速度,但是都没有效果 求助大佬,要怎么写才能让执行时间缩短?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.