Python TCP сокетуудад зориулсан SOCKS мэддэг холбогч
Прокси мэддэг сокет холбогчийг сонгож, түүний хамрах хүрээг Python-ы процесс даяарх сокет хэрэгжүүлэлтээс тусгаарлаарай.
Энгийн Python сокет нь http_proxy байгаа учраас прокситой хэлэлцээр хийдэггүй. Өөрийн TCP протоколоор ярьдаг програмын хувьд проксийн төгсгөлийн үйлчилгээг ойлгодог холбогч ашиглана уу.
PySocks аль хэдийн байгаа бол холболтыг тодорхой үүсгэнэ үү:
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.
Баримт бичгийн хаяг болон очих портыг соль. Зөвшөөрөгдсөн нийтийн очих газрын хувьд програмын зорилтот портыг зөвшөөрч байгааг шалгасны дараа л SOCKS5 прокси жагсаалтаас нэр дэвшигч сонгоно уу. Суулгасан багц, дэмжигддэг арга, төгсгөлийн цэгийн шаардлагыг PySocks интерфейстэй харьцуулна уу.
Програмын үлдсэн хэсэг нь өөрийн протоколыг энэ тогтоосон холболтоор солилцдог. Хэрэв тэр протокол TLS ашигладаг бол проксийн хэлэлцээрийн дараа эхлүүлж, бодит очих хостын нэрийг шалгана уу. Прокси баталгаажуулалт зам тогтоодог; энэ нь очих газрын нэвтрэлт эсвэл шифрлэлтийг өгдөггүй.
SOCKS сонсогчид SOCKS хэлэлцээр хэрэгтэй. HTTP үйлчилгээнд дурын TCP очих газарт CONNECT чадвартай холбогч хэрэгтэй бөгөөд портыг нь татгалзаж болно. Буруу гар барилтыг орхиж хаягийг солихын оронд бодитоор санал болгож буй үйлчилгээнд тохирох холбогчийг сонгоно уу.
Орлуулалтыг орон нутгийнх байлга. socket.socket-д класс оноох нь хамааралгүй импорт, сангуудад нөлөөлж болно. Хэрэв сокет үүсгэхийг өөр сан эзэмшдэг бол түүний баримтжуулсан холболтын фабрик эсвэл проксийн сонголтыг ашиглана уу; тэр хэзээ ч уншдаггүй толь бичиг тэр холболтыг өөрчилж чадахгүй.