پراکسی IP اور پورٹ: آپ کی ایپ کو کون سا فارمیٹ چاہیے؟
پراکسی فہرست کے اندراج کو HTTP یا SOCKS URL میں بدلیں، میزبان اور پورٹ کے الگ خانے پُر کریں اور IPv6 پتے درست لکھیں۔
کچھ ایپس IP:port مانگتی ہیں۔ دوسری ایپس کو http:// یا socks5:// سے شروع ہونے والا URL چاہیے۔ براؤزر کی ترتیبات میں پتہ اور پورٹ اکثر الگ خانوں میں ہوتے ہیں۔ یوں ایک ہی endpoint پتہ بدلے بغیر کئی فارمیٹ میں ظاہر ہو سکتا ہے۔
IPv4 کا ایک اندراج
فرض کریں کہ HTTP پراکسی فہرست مثال کے طور پر HTTP پراکسی 203.0.113.10:8080 دیتی ہے۔
| ایپ کیا مانگتی ہے | درج کریں |
|---|---|
| میزبان یا IP | 203.0.113.10 |
| پورٹ | 8080 |
| HTTP پراکسی URL | http://203.0.113.10:8080 |
پورٹ دو بار شامل نہ کریں۔ اگر ایپ میں پورٹ کا الگ خانہ موجود ہے تو میزبان کے خانے میں 203.0.113.10:8080 لکھنے سے وہ پوری سٹرنگ کو میزبان نام سمجھ کر resolve کرنے کی کوشش کر سکتی ہے۔ اسی طرح، واضح طور پر صرف IP پتہ مانگنے والے خانے میں scheme نہ شامل کریں۔
Scheme کو سروس سے مطابقت رکھنی چاہیے۔ پتہ بدلنے سے پہلے کلائنٹ کی سپورٹ کے مطابق HTTP یا SOCKS5 منتخب کریں۔ HTTP endpoint سے پہلے socks5:// لکھنے سے کلائنٹ کا بھیجا ہوا مواد بدلتا ہے؛ اس سرور پر SOCKS5 فعال نہیں ہوتا۔
URL میں IPv6 کے لیے مربع بریکٹ ضروری ہیں
IPv6 پتے میں پہلے ہی کولن ہوتے ہیں، اس لیے URL میں پورٹ لگانے سے پہلے پتے کو مربع بریکٹ میں رکھا جاتا ہے:
http://[2001:db8::10]:8080
socks5://[2001:db8::10]:1080
بریکٹ کے بغیر پتے اور پورٹ کی حد مبہم ہے۔ الگ خانوں والی ایپ عموماً میزبان کے لیے 2001:db8::10 اور پورٹ کے لیے 8080 مانگتی ہے؛ اسی ایپ کے ان پٹ فارمیٹ کی پیروی کریں۔ یہاں کے دونوں پتے دستاویزی مثالیں ہیں، چلتی ہوئی پراکسی نہیں۔
ہر کولن پر تقسیم کرنے کے بجائے 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 میں میزبان کی عدم موجودگی، غیر معاون scheme اور 1–65535 سے باہر پورٹ بھی مسترد کریں۔ URL پارس کرنے سے اس کے حصے ملتے ہیں؛ سروس کے وجود کا ثبوت نہیں ملتا۔
جب فہرست میں صارف نام اور پاس ورڈ ہو
URL کی عام ساخت http://username:password@host:port ہے۔ لاگ ان معلومات میں @، # اور / جیسے حروف کی درست URL encoding ضروری ہے۔ اگر کلائنٹ الگ لاگ ان خانے دے تو انہیں استعمال کرنا ہاتھ سے URL بنانے سے عموماً آسان ہوتا ہے۔
کولن سے الگ کی گئی لاگ ان سٹرنگ بدلنے سے پہلے فراہم کنندہ کا اصل فارمیٹ دیکھیں۔ کولن سے الگ چار خانوں کا کوئی عالمگیر مطلب نہیں اور پاس ورڈ میں خود بھی کولن ہو سکتا ہے۔ سادہ IP:port سطروں کے لیے بنا parser کسی مختلف فارمیٹ کا خاموشی سے اندازہ نہ لگائے۔