python3多线程端口扫描

2023-02-27 00:00:00 多线程 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() 函数来扫描对应的端口。

需要注意的是,端口扫描可能会引起网络安全问题。在实际应用中,需要遵循相关安全规范,并进行必要的授权和审计。

相关文章