python3多线程端口扫描
在 Python3 中使用多线程进行端口扫描,可以使用 socket 和 threading 模块。以下是一个简单的示例代码:
import socket import threading def scan_port(host, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: s.connect((host, port)) print(f"Port {port} is open") except: pass s.close() def main(): host = 'localhost' ports = [80, 443, 8080, 3306] threads = [] for port in ports: t = threading.Thread(target=scan_port, args=(host, port)) threads.append(t) t.start() for t in threads: t.join() if __name__ == '__main__': main()
在这个示例中,我们定义了一个 scan_port() 函数,它接受一个主机名和一个端口号,并使用 socket 模块的 connect() 方法连接指定的主机和端口。如果连接成功,表示该端口是开放的,将输出一条消息到控制台。
在主程序中,我们定义了一个主机名和一个端口列表,并为每个端口创建一个线程。每个线程都调用 scan_port() 函数来扫描对应的端口。
需要注意的是,端口扫描可能会引起网络安全问题。在实际应用中,需要遵循相关安全规范,并进行必要的授权和审计。
相关文章