1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
from ast import Try import socket import sys
socketList = []
host = socket.gethostname() remoteHost = '192.168.3.171' remotePort = 6000
errNum = 0 ToTalNum = 0 errPorts = {}
print("请通过\'netsh int ipv4 show dynamicport tcp\'查看启动端口和端口数,一般情况下该值为49152") start = eval(input("启动端口:")) end = eval(input("终止端口:"))
for i in range(start , end): ToTalNum += 1 s = socket.socket() localHostAndPort = (host,i) try: s.bind(localHostAndPort) if s.connect((remoteHost, remotePort)) == socket.error: print('FAILED', i) print(s.recv(1024).decode(), i) socketList.append(s) except OSError as e: errNum += 1 errPorts[i] = (localHostAndPort, "OSError:", e)
print("Total Port Number(%r)"%ToTalNum, "Error Port Number(%r)"%errNum) print("Error Ports:") for err in errPorts.keys(): print(err, errPorts[err])
if len(errPorts) == 0: print("All Ports success (%d) ~"%start, "(%d)"% end)
print("输入\'exit\'关闭CLIENT:") char = input() while char != "exit": char = input()
for skt in socketList: skt.close()
|