python比较ip范围到主机文件

时间:2015-06-16 01:33:24

标签: python ip ip-address subnet

我有一个简单的python脚本,它将使用netaddr的范围与主机文件进行比较。我需要打印整个范围和比赛。这是我可以去的。下面的代码段:

ip_range = sys.argv[1]
host_file = open('/etc/hosts')
for ip in IPNetwork(ip_range).iter_hosts():
    ip_results.append('%s' % ip)

for Z in ip_results:
    for X in host_file:
        if Z in X:
            print Z, X

这样的事情:

192.168.1.1 192.168.1.1 host1

192.168.1.2 192.168.1.2 host2

192.168.1.3

即使没有匹配,我仍想打印IP。 非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

简单的解决方案是初始化一个匹配变量,然后打开ip,如果它没有打开。例如:

for Z in ip_results:
    matching = 0
    for X in host_file:
        if Z in X:
            print Z, X
            matching = 1
    if matching == 0:
        print Z