我正在编写一个 Python 脚本来在插入网络设备时检测它们。我正在使用 nmap。不幸的是,即使我现在没有连接/重新连接主机,nmap 几乎每个循环都会报告不同数量的主机。当主机未断开/连接时,如何在每个循环中获得相同的输出?
nmaps = []
nmaps_last_lines = []
import re
import os
while True:
print "Scanning"
if not nmaps:
output = os.popen('sudo nmap --host-timeout 20s -sP 10.0.1.0/24 -oG -').read()
nmaps_last_lines.append(output.split('\n')[-2])
output = re.findall('\d+\.\d+\.\d+.\d+', output)
nmaps.append(output)
else:
output = os.popen('sudo nmap --host-timeout 20s -sP 10.0.1.0/24 -oG -').read()
nmaps_last_lines.append(output.split('\n')[-2])
output = re.findall('\d+\.\d+\.\d+.\d+', output)
nmaps.append(output)
if set(output) != set(nmaps[-2]):
#previous_output = set([i.strip() for i in nmaps[-2].split('\n')[1:-2]])
#current_output = set([i.strip() for i in nmaps[-1].split('\n')[1:-2]])
print "New equipment detected"
print '\n'.join(list(set(output) - set(nmaps[-2])))
print nmaps_last_lines[-1]
print nmaps_last_lines[-2]
#print "Current output"
#print nmaps[-1].split('\n')
#print current_output
#print "Previous output"
#print nmaps[-2].split('\n')
#print previous_output
#break
扫描 扫描 检测到新设备 10.0.1.41 10.0.1.23
Nmap 于 2013 年 10 月 26 日星期六 00:07:55 完成——在 22.68 秒内扫描了 256 个 IP 地址(19 个主机)
Nmap 在 2013 年 10 月 26 日星期六 00:07:32 完成——在 3.32 秒内扫描了 256 个 IP 地址(18 个主机)
扫描检测到新设备
Nmap 于 2013 年 10 月 26 日星期六 00:08:02 完成——在 6.51 秒内扫描了 256 个 IP 地址(18 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:07:55 完成——在 22.68 秒内扫描了 256 个 IP 地址(19 个主机)
扫描 检测到新设备 10.0.1.23 10.0.1.42
Nmap 于 2013 年 10 月 26 日星期六 00:08:18 完成——在 16.45 秒内扫描了 256 个 IP 地址(最多 20 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:08:02 完成——在 6.51 秒内扫描了 256 个 IP 地址(18 个主机)
扫描检测到新设备 10.0.1.10
Nmap 于 2013 年 10 月 26 日星期六 00:08:30 完成——在 12.19 秒内扫描了 256 个 IP 地址(19 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:08:18 完成——在 16.45 秒内扫描了 256 个 IP 地址(最多 20 个主机)
扫描检测到新设备 10.0.1.23
Nmap 于 2013 年 10 月 26 日星期六 00:08:44 完成——在 14.17 秒内扫描了 256 个 IP 地址(18 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:08:30 完成——在 12.19 秒内扫描了 256 个 IP 地址(19 个主机)
扫描检测到新设备
Nmap 于 2013 年 10 月 26 日星期六 00:08:54 完成——在 9.45 秒内扫描了 256 个 IP 地址(16 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:08:44 完成——在 14.17 秒内扫描了 256 个 IP 地址(18 个主机)
扫描 检测到新设备 10.0.1.23 10.0.1.10 10.0.1.41 10.0.1.22 10.0.1.42
Nmap 于 2013 年 10 月 26 日星期六 00:09:05 完成——在 11.40 秒内扫描了 256 个 IP 地址(21 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:08:54 完成——在 9.45 秒内扫描了 256 个 IP 地址(16 个主机)
扫描检测到新设备
Nmap 于 2013 年 10 月 26 日星期六 00:09:16 完成——在 10.25 秒内扫描了 256 个 IP 地址(19 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:09:05 完成——在 11.40 秒内扫描了 256 个 IP 地址(21 个主机)
扫描检测到新设备 10.0.1.10
Nmap 于 2013 年 10 月 26 日星期六 00:09:26 完成——在 10.42 秒内扫描了 256 个 IP 地址(最多 20 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:09:16 完成——在 10.25 秒内扫描了 256 个 IP 地址(19 个主机)
扫描 检测到新设备 10.0.1.23 10.0.1.21
Nmap 在 2013 年 10 月 26 日星期六 00:09:59 完成——在 32.71 秒内扫描了 256 个 IP 地址(最多 20 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:09:26 完成——在 10.42 秒内扫描了 256 个 IP 地址(最多 20 个主机)
扫描检测到新设备 10.0.1.22
Nmap 于 2013 年 10 月 26 日星期六 00:10:04 完成——在 5.28 秒内扫描了 256 个 IP 地址(18 个主机)
Nmap 在 2013 年 10 月 26 日星期六 00:09:59 完成——在 32.71 秒内扫描了 256 个 IP 地址(最多 20 个主机)
扫描 检测到新设备 10.0.1.10 10.0.1.41 10.0.1.21 10.0.1.42
Nmap 于 2013 年 10 月 26 日星期六 00:10:12 完成——在 8.00 秒内扫描了 256 个 IP 地址(22 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:10:04 完成——在 5.28 秒内扫描了 256 个 IP 地址(18 个主机)
扫描检测到新设备
Nmap 于 2013 年 10 月 26 日星期六 00:10:21 完成——在 8.61 秒内扫描了 256 个 IP 地址(19 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:10:12 完成——在 8.00 秒内扫描了 256 个 IP 地址(22 个主机)
扫描 检测到新设备 10.0.1.10 10.0.1.23
Nmap 于 2013 年 10 月 26 日星期六 00:11:17 完成——在 55.83 秒内扫描了 256 个 IP 地址(21 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:10:21 完成——在 8.61 秒内扫描了 256 个 IP 地址(19 个主机)
扫描 扫描 检测到新设备
Nmap 于 2013 年 10 月 26 日星期六 00:12:41 完成——在 38.61 秒内扫描了 256 个 IP 地址(最多 20 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:12:03 完成——在 45.79 秒内扫描了 256 个 IP 地址(21 个主机)
扫描检测到新设备 10.0.1.23
Nmap 于 2013 年 10 月 26 日星期六 00:12:52 完成——在 11.05 秒内扫描了 256 个 IP 地址(19 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:12:41 完成——在 38.61 秒内扫描了 256 个 IP 地址(最多 20 个主机)
扫描检测到新设备
Nmap 于 2013 年 10 月 26 日星期六 00:13:00 完成——在 7.39 秒内扫描了 256 个 IP 地址(16 个主机)
Nmap 于 2013 年 10 月 26 日星期六 00:12:52 完成——在 11.05 秒内扫描了 256 个 IP 地址(19 个主机)
扫描