如何用 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 进行端口扫描时,需要遵守所有网络安全法规和道德规范。未经允许对他人计算机进行端口扫描是不合法的。
相关文章