import socket

# def get_local_ip():
#     client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#     # 连接谷歌的dns服务器
#     client.connect(("8.8.8.8", 80))
#     ip, _ = client.getsockname()  # 获取套接字自己的地址,返回元组,ip地址和端口号
#     client.close()
#     return ip
#
#
# if __name__ == '__main__':
#     print(get_local_ip())


import socket
from concurrent.futures import wait, ALL_COMPLETED, ThreadPoolExecutor


def getport(port):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.settimeout(1)
    state = sock.connect_ex(("192.168.11.8", port))
    if 0 == state:
        print("port: {} is open".format(port))
    sock.close()


with ThreadPoolExecutor(max_workers=100) as t:
    task_array = []
    for port in range(1, 65535):
        task = t.submit(getport, port)
        task_array.append(task)
    wait(task_array, return_when=ALL_COMPLETED)
