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

时间:2013-10-26 07:16:47

标签: python nmap

我正在编写一个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个主机)

扫描

0 个答案:

没有答案