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.

Artikli relatati