SOCKSv5 の接続コード
認証不要のSOCKSv5サーバにTCPで繋ぐだけwww 接続先もIPじゃないと駄目www 将来に向けた布石のつもりではある.
from sys import exit, stdout, stderr from socket import socket, AF_INET, SOCK_STREAM s = socket(AF_INET, SOCK_STREAM) try: s.connect(('socks-server', 1080)) s.sendall('\x05\x01\x00') ret = s.recv(1024) if ret[1] == '\xff': stderr.write('method error') exit(1) ip = '192.168.10.5' port = 1000 s.sendall('\x05\x01\x00\x01' + ''.join(map(chr, map(int, ip.split('.')))) + chr(port >> 8) + chr(port & 255)) ret = s.recv(1024) stdout.write('VER: X%x\n' % ord(ret[0])) stdout.write('REP: X%x\n' % ord(ret[1])) stdout.write('ATYP: X%x\n' % ord(ret[3])) addr = '%d.%d.%d.%d' % (ord(ret[4]), ord(ret[5]), ord(ret[6]), ord(ret[7])) port = '%d' % (ord(ret[8]) * 256 + ord(ret[9])) stdout.write('BND.ADDR: %s\n' % addr) stdout.write('BND.PORT: %s\n' % port) finally: s.close()