Python TCP सॉकेट्ससाठी SOCKS-जाणकार कनेक्टर
प्रॉक्सी-जाणकार सॉकेट कनेक्टर निवडा आणि त्याची व्याप्ती Python च्या प्रक्रिया-व्यापी सॉकेट अंमलबजावणीपासून वेगळी ठेवा.
http_proxy अस्तित्वात असल्यामुळेच सामान्य Python सॉकेट प्रॉक्सीशी वाटाघाटी करत नाही. स्वतःचे 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 ला वर्ग नेमणे असंबंधित इंपोर्ट आणि लायब्ररींवर परिणाम करू शकते. दुसरी लायब्ररी सॉकेट निर्मितीची मालक असल्यास, तिचा दस्तऐवजीकृत कनेक्शन फॅक्टरी किंवा प्रॉक्सी पर्याय वापरा; ती कधीही न वाचणारा शब्दकोश ते कनेक्शन बदलू शकत नाही.