SOCKS-ez jabetzen den konektorea Python TCP socketetarako
Aukeratu proxya ulertzen duen socket konektore bat eta eduki haren esparrua Pythonen prozesu osoko socket inplementaziotik bereizita.
Python socket gordin batek ez du proxyrik negoziatzen http_proxy existitzeagatik. Bere TCP protokoloa hitz egiten duen aplikazio baterako, erabili proxyaren muturreko zerbitzua ulertzen duen konektore bat.
PySocks jada eskuragarri dagoela, sortu konexioa modu esplizituan:
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.
Ordeztu dokumentazioko helbidea eta helmugako portua. Onartutako helmuga publiko bat lortzeko, hautatu hautagai bat SOCKS5 proxy zerrendatik aplikazioaren helburuko portua onartzen duela egiaztatu ondoren soilik. Egiazta ezazu instalatutako paketea, onartutako metodoak eta muturreko baldintzak PySocks interfazearen arabera.
Aplikazioaren gainerakoak bere protokoloa trukatzen du ezarritako konexio honen bidez. Protokolo horrek TLS erabiltzen badu, hasi proxyaren negoziazioaren ondoren eta egiaztatu helmugako ostalari-izen erreala. Proxyaren autentifikazioak ibilbidea ezartzen du; ez du helmugako saio-hasiera ezta zifratzea ematen.
SOCKS entzule batek SOCKS negoziazioa behar du. HTTP zerbitzu batek CONNECT gaitasuna duen konektore bat behar du TCP helmuga arbitrario baterako, eta bere portua ukatu dezake. Aukeratu konektorea benetan eskaintzen den zerbitzuaren arabera, helbide bat aldatuz esku-ukaldi okerra utzi beharrean.
Mantendu ordezkapena tokikoa. Klase bat socket.socket-ri esleitzeak erlazionatu gabeko inportazio eta liburutegiei eragin diezaieke. Beste liburutegi batek socket sorkuntza badu, erabili haren konexio-fabrika edo proxy aukera dokumentatua; inoiz irakurtzen ez duen hiztegi batek ezin du konexio hori aldatu.