In SOCKS-bewuste ferbining foar Python TCP-sockets
Kies in proxy-bewuste socketferbining en hâld har omfang skieden fan Python syn prosesbrede socketymplemintaasje.
In rûge Python-socket ûnderhanneltet gjin proxy om't http_proxy bestiet. Foar in applikaasje dy't syn eigen TCP-protokol sprekt, brûk in ferbining dy't de tsjinst by it proxy-einpunt begrypt.
Mei PySocks al beskikber, meitsje de ferbining eksplisyt:
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.
Ferfang it dokumintaasje-adres en de bestimmingspoarte. Foar in tastiene iepenbiere bestimming, kies in kandidaat út 'e SOCKS5-proxylist pas nei't jo kontrolearre hawwe dat it de doelpoarte fan 'e applikaasje tastiet. Kontrolearje it ynstalleare pakket, de stipe metoaden en de easken fan it einpunt tsjin de PySocks-ynterface.
De rest fan 'e applikaasje wikselet syn protokol oer dizze oprjochte ferbining. As dat protokol TLS brûkt, start it dan nei de proxy-ûnderhanneling en ferifiearje de echte bestimmingshostnamme. Proxy-autentikaasje stelt de rûte fêst; it leveret net de oanmelding by de bestimming of fersifering.
In SOCKS-harker hat SOCKS-ûnderhanneling nedich. In HTTP-tsjinst hat in CONNECT-befoege ferbining nedich foar in willekeurige TCP-bestimming en kin syn poarte wegerje. Kies de ferbining op grûn fan 'e tsjinst dy't eins oanbean wurdt, ynstee fan in adres te feroarjen en de ferkearde hânskud te litten.
Hâld de ferfanging lokaal. It tawizen fan in klasse oan socket.socket kin ûnferbâne ymporten en biblioteken beynfloedzje. As in oare biblioteek it socketskema besit, brûk dan syn dokumintearre ferbiningsfabryk of proxy-opsje; in wurdboek dat it nea lêst kin dy ferbining net feroarje.