SOCKS-konscia konektilo por Python TCP-ingoj
Elektu prokurilan konscian ingan konektilon kaj tenu ĝian amplekson aparte de la tutprocesa inga efektivigo de Python.
Kruda Python-ingo ne intertraktas prokurilon nur ĉar ekzistas http_proxy. Por aplikaĵo, kiu parolas sian propran TCP-protokolon, uzu konektilon, kiu komprenas la servon ĉe la prokurila finpunkto.
Se PySocks jam disponeblas, kreu la konekton eksplice:
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.
Anstataŭigu la dokumentan adreson kaj la cellan havenon. Por permesita publika celo, elektu kandidaton el la listo de SOCKS5-prokuriloj nur post kiam vi kontrolis, ke ĝi permesas la celan havenon de la aplikaĵo. Kontrolu la instalitan pakaĵon, la subtenatajn metodojn kaj la postulojn de la finpunkto laŭ la PySocks-interfaco.
La resto de la aplikaĵo interŝanĝas sian protokolon super ĉi tiu starigita konekto. Se tiu protokolo uzas TLS, startigu ĝin post la prokurila intertraktado kaj kontrolu la efektivan celan gastigantan nomon. Prokurila aŭtentikigo starigas la vojon; ĝi ne provizas la celan ensaluton nek la ĉifradon.
SOCKS-aŭskultanto bezonas SOCKS-intertraktadon. HTTP-servo bezonas CONNECT-kapablan konektilon por arbitra TCP-celo kaj povas rifuzi sian havenon. Elektu la konektilon laŭ la servo efektive ofertata, anstataŭ ŝanĝi adreson lasante la malĝustan manpremon.
Tenu la anstataŭigon loka. Asigni klason al socket.socket povas influi ne rilatajn importojn kaj bibliotekojn. Se alia biblioteko posedas la ingan kreadon, uzu ĝian dokumentitan konektan fabrikon aŭ prokurilan opcion; vortaro, kiun ĝi neniam legas, ne povas ŝanĝi tiun konekton.