脚本如下,需要用到IPy模块,python-nmap模块,脚本执行后,以csv文档将结果输出到屏幕上
#!/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 需要扫描的端口用逗号分隔 ‘‘‘ 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 = [] for port in ports: if tcp[port]["state"] == "open": ports_list.append("{}".format(port)) else: ports_list.append("") print("{},{},{}".format(host,mac,",".join(ports_list)))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。