SOCKS-свесен конектор за Python TCP сокети
Изберете конектор за сокети свесен за прокси и држете го неговиот опсег одделен од имплементацијата на сокети за целиот процес на 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 услугата бара конектор способен за CONNECT за произволно TCP одредиште и може да го одбие неговиот порт. Изберете го конекторот според услугата што навистина се нуди, наместо да менувате адреса оставајќи го погрешното ракување.
Држете ја замената локална. Доделувањето класа на socket.socket може да влијае на неповрзани импорти и библиотеки. Ако друга библиотека го поседува создавањето сокети, користете ја нејзината документирана фабрика за врски или опција за прокси; речник што таа никогаш не го чита не може да ја промени таа врска.