En normale Python-Socket verhandelt kee Proxy, just well http_proxy existéiert. Fir eng Applikatioun, déi hiren eegene TCP-Protokoll schwätzt, benotzt en Connector, deen de Service um Proxy-Endpunkt versteet.

Wann PySocks schonn disponibel ass, erstellt d'Verbindung explizit:

import socks

with socks.socksocket() as connection:
    connection.set_proxy(socks.SOCKS5, '203.0.113.10', 1080)
    connection.settimeout(10)
    connection.connect(('example.com', 12345))
    # Exchange the destination protocol here.

Ersetzt d'Dokumentatiounsadress an den Destinatiounsport. Fir eng erlaabt ëffentlech Destinatioun wielt e Kandidat aus der SOCKS5-Proxy-Lëscht eréischt nodeems Dir geprüft hutt, datt se den Zilport vun der Applikatioun erlaabt. Prüft dat installéiert Pak, déi ënnerstëtzt Methoden an d'Endpunkt-Ufuerderungen un der PySocks-Interface.

De Rescht vun der Applikatioun tauscht säi Protokoll iwwer dës etabléiert Verbindung aus. Wann dat Protokoll TLS benotzt, start et no der Proxy-Verhandlung a verifizéiert den echte Destinatiounshostname. Proxy-Authentifikatioun etabléiert d'Route; se bitt awer net de Destinatiouns-Login oder d'Verschlüsselung.

E SOCKS-Listener brauch SOCKS-Verhandlung. En HTTP-Service brauch en CONNECT-fäege Connector fir eng arbiträr TCP-Destinatioun a kann säi Port verweigeren. Wielt de Connector aus dem Service, deen tatsächlech ugebueden gëtt, amplaz eng Adress z'änneren an de falschen Handshake ze loossen.

Halt d'Ersetzung lokal. Eng Klass socket.socket zouzeweisen kann onverbonnen Importer a Bibliothéiken beaflossen. Wann eng aner Bibliothéik d'Socket-Erstellung besëtzt, benotzt hire dokumentéierte Verbindungsfactory oder Proxy-Optioun; en Dictionnaire, deen se ni liest, kann déi Verbindung net änneren.

Ähnlech Artikelen