使用python的nmap模块扫描主机生成csv文档-创新互联

脚本如下,需要用到IPy模块,python-nmap模块,脚本执行后,以csv文档将结果输出到屏幕上

成都创新互联公司是一家专注于网站设计制作、网站设计与策划设计,临澧网站建设哪家好?成都创新互联公司做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:临澧等地区。临澧做网站价格咨询:13518219792
#!/usr/bin/env python3

'''
参考链接 https://blog.csdn.net/qq_36119192/article/details/83717690
使用方法:
nmap_scan.py 192.168.0.0/24 22,3389
支持单个IP,网段扫描
网段格式支持:192.168.0.0/24,192.168.0.0/24
需要扫描的端口用逗号分隔
使用grep 过滤结果
grep -E '22|3389'
'''

import sys
import nmap
from IPy import IP

if len(sys.argv) != 3:
    print("参数错误,支持格式:单个IP,后缀或掩码形式的网段")
    exit(1)

scan_ip = IP(sys.argv[1])
scan_port = sys.argv[2]

# scan_ip.prefixlen()

# 将网段转所后缀形式
scan_ip = "{}".format(scan_ip)

for port in [ int(i) for i in scan_port.split(",") ]:
    if port < 1 or port >  65535:
        print("端口范围 1 - 65535")
        exit(1)

nm=nmap.PortScanner()
nm.scan(scan_ip, scan_port,'-Pn')
hosts = nm.all_hosts()
for host in hosts:
    mac = nm[host]["addresses"].get("mac", "")
    tcp = nm[host]["tcp"]
    ports = nm[host]["tcp"].keys()
    ports_list = []
        # ports_list_len = 0
    for port in ports:
        if tcp[port]["state"] == "open":
            ports_list.append("{}".format(port))
                        # ports_list_len += 1
        else:
            ports_list.append("")
#    if ports_list_len != 0:
#        print("{},{},{}".format(host, mac, ",".join(ports_list)))
    print("{},{},{}".format(host, mac, ",".join(ports_list)))

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前名称:使用python的nmap模块扫描主机生成csv文档-创新互联
标题链接:http://hbruida.cn/article/dhjogd.html