📜  Python – 带有套接字的简单端口扫描器(1)

📅  最后修改于: 2023-12-03 14:46:10.493000             🧑  作者: Mango

Python – 带有套接字的简单端口扫描器

本文介绍了如何使用Python编写带有套接字的简单端口扫描器。端口扫描器是一种工具,用于检测目标主机上开放的网络端口。

端口扫描器原理

端口扫描器通过建立与目标主机的连接,并尝试在不同的端口上进行连接,从而检测出目标主机上开放的端口。扫描器发送TCP或UDP数据包到目标主机的各个端口,并根据接收到的响应判断该端口是否开放。

使用Python编写端口扫描器
import socket

# 定义要扫描的目标主机和端口范围
target_host = "目标主机IP"
target_port_range = range(1, 1001)  # 要扫描的端口范围

# 创建套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 设置连接超时时间
client_socket.settimeout(1)

# 扫描目标主机上的端口
for target_port in target_port_range:
    try:
        # 尝试连接目标主机的指定端口
        client_socket.connect((target_host, target_port))
        print(f"Port {target_port} is open")

        # 在实际使用中,可以根据需要在此处执行其他操作,如发送数据、接收数据等

        # 连接成功后关闭套接字
        client_socket.close()

    except socket.error:
        # 连接失败,端口关闭
        print(f"Port {target_port} is closed")

上述代码使用socket模块创建了一个TCP套接字对象client_socket,并通过connect方法尝试连接目标主机的每个端口。如果连接成功,则打印相应的端口为开放状态;如果连接失败,则打印相应的端口为关闭状态。

为了提高扫描效率,我们可以使用多线程或多进程对端口进行并发扫描。另外,我们还可以扩展代码,让其支持扫描UDP端口、扫描指定的常用端口等。

使用Python编写简单的端口扫描器只是网络安全中的基础知识之一。在实际应用中,还需要结合其他安全工具和技术来进行全面的漏洞扫描和安全评估。

希望以上内容对您有所帮助!