Жөнөкөй 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 ге класс дайындоо тиешеси жок импортторго жана китепканаларга таасир этиши мүмкүн. Эгер сокет түзүүнү башка китепкана ээлесе, анын документтелген туташуу фабрикасын же прокси параметрин колдонуңуз; ал эч качан окубаган сөздүк бул байланышты өзгөртө албайт.

Тектеш макалалар