如何使用 Python 和 Nmap 对 TCP 和 UDP 端口进行扫描

2023-04-21 00:00:00 扫描 端口 如何使用

使用 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])

相关文章