我正在编写一个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
扫描 检测到新设备
扫描 检测到新设备 10.0.1.23 10.0.1.42
扫描 检测到新设备 10.0.1.10
扫描 检测到新设备 10.0.1.23
扫描 检测到新设备
扫描 检测到新设备 10.10.1款 10.0.1.10 10.0.1.41 10.0.1.22 10.0.1.42
扫描 检测到新设备
扫描 检测到新设备 10.0.1.10
扫描 检测到新设备 10.0.1.23 10.0.1.21
扫描 检测到新设备 10.0.1.22
扫描 检测到新设备 10.0.1.10 10.0.1.41 10.0.1.21 10.0.1.42
扫描 检测到新设备
扫描 检测到新设备 10.0.1.10 10.0.1.23
扫描 扫描 检测到新设备
扫描 检测到新设备 10.0.1.23
扫描 检测到新设备
扫描
目前没有回答
相关问题 更多 >
编程相关推荐