Python 3.x 扫描包含和不包含子网的txt IP地址

Python 3.x 扫描包含和不包含子网的txt IP地址,python-3.x,ip-address,Python 3.x,Ip Address,我在一个.txt文件中有一个很大的IP地址列表,有子网和没有子网。让我们称之为“坏名单” 我在另一个.txt文件中有另一组IP地址(小得多),它们没有子网。让我们称之为“测试列表” 我的目标是用“测试列表”扫描“坏列表”,并打印所有匹配的IP。如果有一个IP的末尾有一个子网,则打印IP地址和找到它的子网 我的问题是子网。我可以在列表中循环查找匹配的单个IP地址,但当涉及到子网时,我无法让它确定TestList.txt中的X.X.X.X IP是在Badlist.txt中的X.X.X.X/XX中找到

我在一个.txt文件中有一个很大的IP地址列表,有子网和没有子网。让我们称之为“坏名单”

我在另一个.txt文件中有另一组IP地址(小得多),它们没有子网。让我们称之为“测试列表”

我的目标是用“测试列表”扫描“坏列表”,并打印所有匹配的IP。如果有一个IP的末尾有一个子网,则打印IP地址和找到它的子网

我的问题是子网。我可以在列表中循环查找匹配的单个IP地址,但当涉及到子网时,我无法让它确定TestList.txt中的X.X.X.X IP是在Badlist.txt中的X.X.X.X/XX中找到的。它只是跳过带有子网的IP

我尝试了大量的代码变体,但这里有一个例子

import ipaddress

BadIPs = open("BadIPsWithandWithoutNets.txt", "r")
CheckIPs = open("IPsToCheck.txt", "r")

list1 = BadIPs.readlines()
list2 = CheckIPs.readlines()

for line1 in list1:
   for line2 in list2:
       line1 = line1.strip() 
       line2 = line2.strip():
       if line2 == ipaddress.ip_network(line1)     
           print('Matched IP {0} in IP Net {1}'.format(line2,line1))
我正在扫描的坏IP列表示例。我真正的名单是大约5亿英里: BadIPs=[192.168.0.10192.168.0.45192.168.0.0/24]


谢谢大家!

ip1=re.match('[\d]+\.\d]+\.[\d]+\.\d]+',第1行);ip2=重新匹配(“[\d]+\.\d]+\.\d]+\.[\d]+”,第1行);如果ip1==ip2:…
谢谢你的提示!在将这两种不同类型的IP与CheckIPs测试文件匹配之前,我使用RE将它们分开。这是唯一对我有效的方法。我改了一点。我首先匹配每个ip,然后将它们匹配到我的测试文件。然后我将每个IP与一个子网匹配,检查测试文件IP是否位于这些子网中的任何位置,然后打印匹配的任何内容。