我可以在“ip_list”和“banned_subnets”中传递文件。我有多个IP列表需要与多个子网匹配,并且不可能在脚本中列出所有IP。为此,我创建了两个文件ipaddr_list
,其中包含IP列表和sub_list
,其中包含子网列表。
有些人可以建议我如何在下面的脚本中得到这个:
import netaddr
ip_list = ['10.22.140.10', '10.11.14.11', '10.71.13.13', '10.10.131.2', '10.12.6.11', '10.1.6.10']
banned_subnets = ['10.1.6.0/24', '10.10.13.0/24', '10.10.14.0/24' ]
new_list = [str(ip) for ip in netaddr.IPSet(ip_list) & (netaddr.IPSet(banned_subnets))]
print new_list
答案 0 :(得分:2)
我假设你说ip_list
和banned_subnets
的文件是每行含有IP的文本文件。
您需要做的是阅读这些文本文件并将其删除,以便采用列表形式。我将在下面添加一个代码,您可以相应地将代码用于另一个代码。
with open('ip_list.txt') as f:
IP_list = [line for line in f]
希望你也可以为banned_subnets
做同样的事情。