Proxy IP आणि पोर्ट: तुमच्या ॲपला कोणते स्वरूप हवे?
Proxy यादीतील नोंद HTTP किंवा SOCKS URL मध्ये बदला, host व port ची स्वतंत्र क्षेत्रे भरा आणि IPv6 पत्ते योग्य स्वरूपात लिहा.
काही ॲपना IP:port हवे असते. इतरांना http:// किंवा socks5:// ने सुरू होणारा URL लागतो. ब्राउझर सेटिंगमध्ये पत्ता व पोर्ट सहसा वेगवेगळ्या क्षेत्रांत असतात. त्यामुळे एकच endpoint पत्ता न बदलता अनेक स्वरूपांत दिसू शकतो.
IPv4 नोंद
समजा HTTP proxy यादी उदाहरण म्हणून HTTP proxy 203.0.113.10:8080 देते.
| ॲप काय मागते | प्रविष्ट करा |
|---|---|
| Host किंवा IP | 203.0.113.10 |
| पोर्ट | 8080 |
| HTTP proxy URL | http://203.0.113.10:8080 |
पोर्ट दोनदा लिहू नका. ॲपमध्ये आधीच पोर्टचे क्षेत्र असल्यास host च्या क्षेत्रात 203.0.113.10:8080 लिहिल्यामुळे ते पूर्ण स्ट्रिंगला hostname समजून resolve करण्याचा प्रयत्न करू शकते. तसेच फक्त IP पत्ता स्पष्टपणे अपेक्षित असलेल्या क्षेत्रात scheme जोडू नका.
Scheme सेवेशी जुळले पाहिजे. पत्ता बदलण्यापूर्वी क्लायंटच्या समर्थनानुसार HTTP किंवा SOCKS5 निवडा. HTTP endpoint च्या आधी socks5:// लिहिल्याने क्लायंट काय पाठवतो ते बदलते; त्या सर्व्हरवर SOCKS5 सुरू होत नाही.
URL मध्ये IPv6 साठी चौकोनी कंस हवेत
IPv6 पत्त्यात आधीच कोलन असतात, म्हणून URL मध्ये पोर्ट जोडण्यापूर्वी पत्ता चौकोनी कंसांत ठेवला जातो:
http://[2001:db8::10]:8080
socks5://[2001:db8::10]:1080
कंसांशिवाय पत्ता व पोर्टची सीमा संदिग्ध असते. स्वतंत्र क्षेत्रे असलेल्या ॲपला सहसा host म्हणून 2001:db8::10 आणि पोर्ट म्हणून 8080 हवे असते; त्या ॲपचे इनपुट स्वरूप पाळा. इथले दोन्ही पत्ते दस्तऐवजांतील उदाहरणे आहेत, चालू proxy नाहीत.
प्रत्येक कोलनवर विभागण्याऐवजी URL पार्स करा
लहान Python स्क्रिप्ट प्रमाणित URL parser वापरून IPv4 आणि कंस असलेले IPv6 URL हाताळू शकते:
from urllib.parse import urlsplit
proxy = urlsplit("http://[2001:db8::10]:8080")
print(proxy.scheme)
print(proxy.hostname)
print(proxy.port)
hostname गुणधर्म कंसांशिवाय पत्ता देतो. मूळ स्ट्रिंग प्रत्येक कोलनवर विभागल्यास हे उदाहरण बिघडेल. प्रत्यक्ष importer मध्ये host नसलेली नोंद, असमर्थित scheme आणि 1–65535 बाहेरील पोर्टही नाकारा. URL पार्स केल्याने त्याचे घटक मिळतात; सेवा अस्तित्वात आहे याचा पुरावा मिळत नाही.
यादीत वापरकर्तानाव आणि संकेतशब्द असल्यास
नेहमीचे URL स्वरूप http://username:password@host:port आहे. ओळखमाहितीतील @, # आणि / यांसारख्या चिन्हांचे योग्य URL encoding आवश्यक आहे. क्लायंट स्वतंत्र ओळखमाहिती क्षेत्रे देत असल्यास स्वतः URL बनवण्यापेक्षा ती वापरणे सहसा सोपे असते.
कोलनने विभागलेली ओळखमाहिती बदलण्यापूर्वी पुरवठादाराचे मूळ स्वरूप तपासा. कोलनने वेगळ्या केलेल्या चार क्षेत्रांचा सार्वत्रिक अर्थ नसतो आणि संकेतशब्दात स्वतःही कोलन असू शकतो. साध्या IP:port ओळींसाठी बनवलेल्या parser ने दुसरे स्वरूप गुपचूप गृहीत धरू नये.