如何使用 Python 和 Nmap 对 TCP 和 UDP 端口进行扫描
使用 Python 和 Nmap 对 TCP 和 UDP 端口进行扫描需要先安装 Nmap 库。可以使用 pip 安装:
pip install python-nmap
接下来,可以使用以下代码演示对目标 IP 的 TCP 和 UDP 端口进行扫描:
import nmap # 创建一个 Nmap 扫描对象 nm = nmap.PortScanner() # 指定要扫描的主机和端口范围 host = 'pidancode.com' port_range = '1-1000' # 对 TCP 端口进行扫描 result = nm.scan(hosts=host, arguments='-sS -p ' + port_range) # 输出扫描结果 for hostname in nm.all_hosts(): print('Host : %s (%s)' % (hostname, nm[hostname].hostname())) print('State : %s' % nm[hostname].state()) for proto in nm[hostname].all_protocols(): print('Protocol : %s' % proto) print('Ports : %s' % nm[hostname][proto].keys()) # 对 UDP 端口进行扫描 result = nm.scan(hosts=host, arguments='-sU -p ' + port_range) # 输出扫描结果 for hostname in nm.all_hosts(): print('Host : %s (%s)' % (hostname, nm[hostname].hostname())) print('State : %s' % nm[hostname].state()) for proto in nm[hostname].all_protocols(): print('Protocol : %s' % proto) print('Ports : %s' % nm[hostname][proto].keys())
其中,arguments
参数传入了 Nmap 的参数,-sS
表示使用 TCP SYN 扫描,-sU
表示使用 UDP 扫描。
以上代码可以对指定 IP 的 TCP 和 UDP 端口进行扫描,并输出扫描结果。
Host : pidancode.com (pidancode.com) State : up Protocol : tcp Ports : dict_keys([80, 443]) Protocol : udp Ports : dict_keys([53])
相关文章