python3多线程端口扫描

python3多线程端口扫描

#!/usr/bin/env python

import socket
import threading
import queue


def get_ip_status(ip, port):
    server = socket.socket()
    try:
        server.settimeout(1)
        server.connect((ip, port))
        print('{0} port {1} is open'.format(ip, port))
        with open('./success.txt', 'a+') as f:
            f.write('{0} port {1} is open\n'.format(ip, port))
    except Exception as err:
        print(err)
    finally:
        server.close()


def check_open(q):
    try:
        while not q.empty():
            ip = q.get()
            for port in range(20, 90):
                get_ip_status(ip, port)
    except:
        pass


if __name__ == '__main__':
    #lock = threading.Lock()
    q = queue.Queue()
    with open("ip.txt", 'r') as f:
        hosts = f.readlines()
        for host in hosts:
            q.put(host.strip())
    threads = []
    n_thread = 50
    for i in range(n_thread):
        t = threading.Thread(target=check_open, args=(q,))
        t.start()
        threads.append(t)

    for t in threads:
        t.join()
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容