SOCKS-meðvituð tenging fyrir TCP-sokket Python
Veldu proxy-meðvitaða sokketartengingu og hafðu umfang hennar aðskilið frá sokketarútfærslu Python fyrir allt ferlið.
Hrár Python-sokketur semur ekki um proxy bara vegna þess að http_proxy er til. Fyrir forrit sem talar sitt eigið TCP-samskiptareglur, notaðu tengingu sem skilur þjónustuna á proxy-endanum.
Þegar PySocks er þegar tiltækt skaltu stofna tenginguna skýrt:
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.
Skiptu um skjalahnitið og áfangahafnina. Fyrir leyfðan opinberan áfangastað skaltu velja frambjóðanda úr SOCKS5-proxylistanum aðeins eftir að hafa staðfest að hann leyfi markhafn forritsins. Athugaðu uppsetta pakkann, studdar aðferðir og kröfur endans gegn PySocks-viðmótinu.
Afgangur forritsins skiptir um samskiptareglur sínar yfir þessa stofnuðu tengingu. Ef þær samskiptareglur nota TLS skaltu ræsa það eftir proxy-samninginn og staðfesta raunverulegt áfangahýsilnafn. Proxy-auðkenning stofnar leiðina; hún veitir ekki innskráningu á áfangastað né dulkóðun.
SOCKS-hlustunaraðili þarf SOCKS-samning. HTTP-þjónusta þarf CONNECT-hæfa tengingu fyrir handahófskenndan TCP-áfangastað og getur neitað hafninni sinni. Veldu tenginguna eftir þeirri þjónustu sem raunverulega er boðin, í stað þess að breyta vistfangi og skilja eftir rangt handaband.
Hafðu skiptinguna staðbundna. Að úthluta klasa til socket.socket getur haft áhrif á ótengd innflutnings og bókasöfn. Ef annað bókasafn á sokketsköpunina skaltu nota skjalfesta tengiverksmiðju þess eða proxy-valkost; orðabók sem það les aldrei getur ekki breytt þeirri tengingu.