python 将 ip 范围与主机文件进行比较

python compare ip range to host file

我有一个简单的 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 主机 1

192.168.1.2 192.168.1.2 主机 2

192.168.1.3

即使没有匹配,我仍想打印 IP。 如有任何帮助,我们将不胜感激!

简单的解决办法是初始化一个匹配变量,然后如果它没有打开就打印一次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