Konnettur li Jifhem is-SOCKS għal Sockets TCP ta' Python
Agħżel konnettur ta' socket li jifhem il-proxy u żomm l-ambitu tiegħu separat mill-implimentazzjoni tas-socket tal-proċess kollu ta' Python.
Socket Python mhux maħdum ma jinnegozjax proxy sempliċement għax jeżisti http_proxy. Għal applikazzjoni li titkellem bil-protokoll TCP tagħha stess, uża konnettur li jifhem is-servizz fil-punt tat-tmiem tal-proxy.
B'PySocks diġà disponibbli, oħloq il-konnessjoni b'mod espliċitu:
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.
Ibdel l-indirizz tad-dokumentazzjoni u l-port tad-destinazzjoni. Għal destinazzjoni pubblika permessa, agħżel kandidat mil-lista tal-proxy SOCKS5 biss wara li tiċċekkja li tippermetti l-port fil-mira tal-applikazzjoni. Iċċekkja l-pakkett installat, il-metodi appoġġjati u r-rekwiżiti tal-punt tat-tmiem mal-interface PySocks.
Il-bqija tal-applikazzjoni tbiddel il-protokoll tagħha fuq din il-konnessjoni stabbilita. Jekk dak il-protokoll juża TLS, ibdah wara n-negozjazzjoni tal-proxy u vverifika l-isem tal-host tad-destinazzjoni reali. L-awtentikazzjoni tal-proxy tistabbilixxi r-rotta; ma tipprovdix il-login tad-destinazzjoni jew l-encryption.
Listener SOCKS jeħtieġ negozjazzjoni SOCKS. Servizz HTTP jeħtieġ konnettur kapaċi għal CONNECT għal destinazzjoni TCP arbitrarja u jista' jirrifjuta l-port tiegħu. Agħżel il-konnettur mis-servizz attwalment offrut, minflok tbiddel indirizz waqt li tħalli l-handshake żbaljat.
Żomm is-sostituzzjoni lokali. L-assenjazzjoni ta' klassi lil socket.socket tista' taffettwa imports u libreriji mhux relatati. Jekk librerija oħra tippossjedi l-ħolqien tas-socket, uża l-fabbrika tal-konnessjoni jew l-għażla tal-proxy dokumentata tagħha; dizzjunarju li qatt ma taqra ma jistax ibiddel dik il-konnessjoni.