-1
我可以在「ip_list」和「banned_subnets」中傳遞文件嗎?我有多個需要與多個子網匹配的IP列表,並且不可能在腳本中列出它們。爲此,我創建了兩個文件ipaddr_list
,其中包含IP列表和sub_list
,其中包含子網列表。使用python和netaddr模塊將一組IP地址與子網進行比較
一些可以建議我怎麼得到這個在下面的腳本:
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
它的工作原理,但得到以下錯誤: ['10 .11.10.100 \ n','10 .11.18.110 \ n','10 .71.131.123 \ n','10 .71.131.200 \ n','10 .11.6.11 \ n','10 .11.6.121 \ n','10.11.6.11 \ n','204.11.6.11 \ n','\ n'] ['10.11.6.0/24 \ n','10.71.131.0/24 \ n ''10 .11.18.0/24_ \ n '] 下面是修改後的腳本: #在/ usr/bin中/ Python的 進口netaddr中 開放(' ip_list.txt')作爲f: ip_list = [用於f中的行的線路] 張開( 'sub.txt')爲p: banned_subnets = [線在P LINE用於IP在netaddr.IPSet(ip_list) new_list = [STR(IP)(netaddr.IPSet(banned_subnets) )] 打印new_list – beginnertopython
所以,你可以用它來生成列表: 'F =開放( 'ip_list.txt', 'R') IP_list =(f.read())分裂( '\ n'。 )' – harshil9968
[閱讀此](http://stackoverflow.com/questions/3277503/how-to-read-a-file-line-by-line-into-a-list-with-python)這裏如何閱讀逐行列表給出 – harshil9968