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 है। credentials में @, # और / जैसे अक्षरों की सही URL encoding ज़रूरी है। क्लाइंट अलग credential फ़ील्ड दे तो हाथ से URL बनाने की अपेक्षा उनका उपयोग आम तौर पर आसान है।
कोलन से अलग की गई credential स्ट्रिंग बदलने से पहले प्रदाता का मूल फ़ॉर्मैट जाँचें। कोलन से अलग चार फ़ील्ड का कोई सार्वभौमिक अर्थ नहीं है और पासवर्ड में खुद भी कोलन हो सकता है। साधारण IP:port पंक्तियों के लिए बना parser चुपचाप किसी अन्य फ़ॉर्मैट का अनुमान न लगाए।