使用Python从nmap获取一致的输出

2024-09-30 08:33:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个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.10.1款 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完成——256个IP地址(19个主机在上)在8.61秒内扫描完毕

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完成--256个IP地址(21个主机)扫描时间为55.83秒

Nmap于2013年10月26日00:10:21完成——256个IP地址(19个主机在上)在8.61秒内扫描完毕

扫描 扫描 检测到新设备

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个主机)

扫描


Tags: importreoutputifosnmapsplitlast

热门问题