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

利用Python编写的端口开放检测脚本

发布时间:2023-12-12 10:11:55

以下是一个使用Python编写的简单的端口开放检测脚本的示例:

import socket

def check_port(ip, port):
    # 创建一个套接字对象
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    try:
        # 尝试连接到目标主机和端口
        sock.connect((ip, port))
        print(f"Port {port} is open")
    except ConnectionRefusedError:
        print(f"Port {port} is closed")
    finally:
        # 关闭套接字连接
        sock.close()

# 检测本地主机的端口开放情况
check_port('127.0.0.1', 80)

# 检测远程主机的端口开放情况
check_port('example.com', 22)

首先,我们导入了socket模块,该模块提供了用于网络编程的基本函数和类。

然后定义了一个check_port函数,该函数接受一个IP地址和一个端口号作为参数。函数内部创建一个套接字对象,并尝试连接到目标主机和端口。如果连接成功,说明该端口是开放的;如果连接被拒绝,说明该端口是关闭的。无论连接的结果如何,最后都会关闭套接字连接。

在示例代码中,我们分别检测了本地主机的80端口和远程主机example.com的22端口。根据返回的结果,打印出相应的信息。

请注意,上述示例只是一个简单的端口开放检测脚本,可能在某些情况下存在一定的局限性。在实际应用中,我们可能需要更复杂的逻辑判断和精确的错误处理来满足特定的需求。