SOCKS-teadlik konnektor Pythoni TCP-pesadele
Valige puhverserverit mõistev pesa-konnektor ja hoidke selle ulatus Pythoni protsessipõhisest pesa-teostusest eraldi.
Toores Pythoni pesa ei kaubelda puhverserveriga ainult seetõttu, et http_proxy on olemas. Rakendusele, mis räägib oma TCP-protokolli, kasutage konnektorit, mis mõistab teenust puhverserveri lõpp-punktis.
Kui PySocks on juba saadaval, looge ühendus selgesõnaliselt:
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.
Asendage dokumentatsiooni aadress ja sihtport. Lubatud avaliku sihtkoha jaoks valige SOCKS5-puhverserverite loendist kandidaat alles pärast kontrollimist, et see lubab rakenduse sihtporti. Kontrollige paigaldatud paketti, toetatud meetodeid ja lõpp-punkti nõudeid PySocksi liidese järgi.
Ülejäänud rakendus vahetab oma protokolli selle loodud ühenduse kaudu. Kui see protokoll kasutab TLS-i, käivitage see pärast puhverserveri läbirääkimist ja kontrollige tegelikku sihtkoha hostinime. Puhverserveri autentimine loob marsruudi; see ei anna sihtkoha sisselogimist ega krüpteerimist.
SOCKS-kuulaja vajab SOCKS-läbirääkimist. HTTP-teenus vajab CONNECT-võimelist konnektorit suvalise TCP-sihtkoha jaoks ja võib oma pordi keelduda. Valige konnektor tegelikult pakutava teenuse järgi, selle asemel et muuta aadressi ja jätta vale kätlus.
Hoidke asendus lokaalsena. Klassi omistamine socket.socket-le võib mõjutada mitteseotud importe ja teeke. Kui pesa loomine kuulub teisele teegile, kasutage selle dokumenteeritud ühendustehaset või puhverserveri valikut; sõnastik, mida see kunagi ei loe, ei saa seda ühendust muuta.