Xom Python soketi faqat http_proxy mavjudligi sababli proksi bilan kelishmaydi. O'zining TCP protokolida gapiradigan ilova uchun proksi uchidagi xizmatni tushunadigan ulagichdan foydalaning.

Agar PySocks allaqachon mavjud bo'lsa, ulanishni aniq yarating:

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.

Hujjat manzili va maqsad portini almashtiring. Ruxsat etilgan umumiy maqsad uchun SOCKS5 proksi ro'yxatidan nomzodni faqat ilovaning maqsad portiga ruxsat berishini tekshirgandan keyin tanlang. O'rnatilgan paket, qo'llab-quvvatlanadigan usullar va endpoint talablarini PySocks interfeysi bo'yicha tekshiring.

Ilovaning qolgan qismi o'z protokolini shu o'rnatilgan ulanish orqali almashadi. Agar bu protokol TLS ishlatsa, proksi kelishuvidan keyin uni boshlang va haqiqiy maqsad xost nomini tekshiring. Proksi autentifikatsiyasi marshrutni o'rnatadi; u maqsadga kirish yoki shifrlashni ta'minlamaydi.

SOCKS tinglovchisi SOCKS kelishuviga muhtoj. HTTP xizmati ixtiyoriy TCP maqsadi uchun CONNECT qobiliyatli ulagichga muhtoj va o'z portini rad etishi mumkin. Noto'g'ri handshake qoldirib manzilni o'zgartirish o'rniga, haqiqatda taklif qilinadigan xizmatga qarab ulagichni tanlang.

O'zgartirishni mahalliy saqlang. socket.socket ga sinf tayinlash aloqasiz importlar va kutubxonalarga ta'sir qilishi mumkin. Agar soket yaratish boshqa kutubxonaga tegishli bo'lsa, uning hujjatlashtirilgan ulanish fabrikasi yoki proksi opsiyasidan foydalaning; u hech qachon o'qimaydigan lug'at bu ulanishni o'zgartira olmaydi.

O'xshash maqolalar