Ham bir Python soketi yalnızca http_proxy bulunduğu için proxy ile anlaşmaz. Kendi TCP protokolünü konuşan bir uygulama için, proxy uç noktasındaki hizmeti anlayan bir bağlayıcı kullanın.

PySocks zaten mevcutsa bağlantıyı açıkça oluşturun:

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.

Belge adresini ve hedef bağlantı noktasını değiştirin. İzin verilen bir genel hedef için, SOCKS5 proxy listesinden bir adayı ancak uygulamanın hedef bağlantı noktasına izin verdiğini kontrol ettikten sonra seçin. Yüklü paketi, desteklenen yöntemleri ve uç nokta gereksinimlerini PySocks arabirimine göre kontrol edin.

Uygulamanın geri kalanı protokolünü bu kurulan bağlantı üzerinden değiş tokuş eder. Bu protokol TLS kullanıyorsa, proxy anlaşmasından sonra başlatın ve gerçek hedef ana bilgisayar adını doğrulayın. Proxy kimlik doğrulaması rotayı kurar; hedef oturum açma ya da şifreleme sağlamaz.

Bir SOCKS dinleyicisinin SOCKS anlaşmasına ihtiyacı vardır. Bir HTTP hizmeti rastgele bir TCP hedefi için CONNECT yetenekli bir bağlayıcıya ihtiyaç duyar ve bağlantı noktasını reddedebilir. Yanlış el sıkışmayı bırakıp adresi değiştirmek yerine, bağlayıcıyı gerçekte sunulan hizmete göre seçin.

Değiştirmeyi yerel tutun. socket.socket için bir sınıf atamak alakasız içe aktarmaları ve kitaplıkları etkileyebilir. Soket oluşturmayı başka bir kitaplık yönetiyorsa, belgelenmiş bağlantı fabrikasını veya proxy seçeneğini kullanın; hiç okumadığı bir sözlük o bağlantıyı değiştiremez.

İlgili makaleler