欢迎访问宙启技术站
智能推送

Python中利用nmapPortScanner()检测目标主机的端口状态

发布时间:2023-12-24 20:03:30

Python中可以使用nmap库来进行端口扫描,检测目标主机的端口状态。nmap是一个强大的开源扫描工具,可以用于网络探测和安全审核。

首先,需要安装nmap库。可以使用pip命令安装nmap库:

pip install python-nmap

接下来,我们可以使用以下代码来进行端口扫描:

import nmap

def scan_ports(target_host, target_ports):
    # 创建一个nmap端口扫描对象
    nm = nmap.PortScanner()

    # 使用nmap对象进行端口扫描
    result = nm.scan(target_host, target_ports)

    # 遍历扫描结果
    for host in result['scan']:
        for port in result['scan'][host]['tcp']:
            # 获取端口状态
            state = result['scan'][host]['tcp'][port]['state']
            print(f'Port {port} is {state}.')

# 设置目标主机和端口范围
target_host = '127.0.0.1'
target_ports = '1-1000'  # 可以指定具体的端口号,例如:80, 443

# 调用扫描函数
scan_ports(target_host, target_ports)

在上述示例中,我们首先导入了nmap库,然后定义了一个名为scan_ports的函数,该函数接受目标主机和要扫描的端口范围作为参数。

在函数内部,我们创建了一个nmap端口扫描对象,并使用scan方法来扫描目标主机的端口。扫描结果将保存在result变量中。

然后,我们遍历扫描结果,并使用print语句打印出每个端口的状态。

最后,我们设置了目标主机和要扫描的端口范围,并调用scan_ports函数进行扫描。

需要注意的是,进行端口扫描可能涉及到网络安全问题,请确保您已经获得了对目标主机的合法授权,并且仅使用该代码来进行合法目的的扫描。

另外,nmap还有其他强大的功能,例如OS指纹识别、服务探测等,可以根据需求进一步扩展代码来实现这些功能。请参考nmap库的官方文档以获取更多信息。