如何用 Python 进行端口扫描

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

Python 可以通过 socket 模块实现端口扫描。

首先,我们需要使用 socket.socket() 方法创建一个 TCP 套接字对象,然后使用 connect() 方法连接目标主机和端口。如果连接成功,说明该端口开放;如果连接失败,则该端口关闭。

接下来,我们可以通过遍历指定端口范围的循环来扫描所有可能开放的端口。代码演示如下:

import socket

target = 'pidancode.com'  # 目标主机
port_range = range(1, 100)  # 扫描的端口范围

for port in port_range:
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 创建 TCP 套接字对象
    sock.settimeout(1)  # 设置连接超时时间为 1 秒
    try:
        sock.connect((target, port))  # 连接目标主机和端口
    except:
        pass  # 如果连接失败,说明该端口关闭
    else:
        print(f'{target}:{port} is open')  # 如果连接成功,说明该端口开放
        sock.close()  # 关闭套接字对象

在上述代码中,我们使用了 try-except 结构来处理连接失败的情况。如果连接失败,什么都不做;如果连接成功,则输出该端口开放的信息。

注意,在使用 socket 进行端口扫描时,需要遵守所有网络安全法规和道德规范。未经允许对他人计算机进行端口扫描是不合法的。

相关文章