0

我试图找出防火墙阻止了哪些域。假设站点包含大约 200 万个域。

ThreadPoolExecutor 是最快的方法还是有更快的方法?

谢谢

import socket
import ssl
from concurrent.futures import ThreadPoolExecutor

context = ssl.create_default_context()
socket.setdefaulttimeout(1)

sites = ['abc.com','def.com','geh.com']
def tls_check(domain):
    try:
        conn = ssl.create_connection(('1.1.1.1', 443))
    except socket.timeout:
        print(domain + "timed out")
        return
    except:
        return
    try:
        context.wrap_socket(conn, server_hostname=domain)
        conn.close()
    except ConnectionResetError:
        cx = open("blockedsites.txt", "a")
        cx.write("\n" + domain)
        cx.close()
        conn.close()
        return
    except:
        return
with ThreadPoolExecutor(max_workers=20) as pool:
    pool.map(tls_check, sites)
4

0 回答 0