အချို့အက်ပ်များက IP:port လိုသည်။ အခြားအက်ပ်များက http:// သို့မဟုတ် socks5:// ဖြင့်စသော URL လိုသည်။ ဘရောက်ဇာဆက်တင်များတွင် လိပ်စာနှင့် port ကို အကွက်ခွဲထားလေ့ရှိသည်။ ထို့ကြောင့် endpoint တစ်ခုတည်းသည် လိပ်စာမပြောင်းဘဲ ပုံစံအမျိုးမျိုးဖြင့် ပေါ်နိုင်သည်။

IPv4 စာရင်းဝင်တစ်ခု

HTTP proxy စာရင်းက ဥပမာ HTTP proxy 203.0.113.10:8080 ပေးသည်ဟု ယူဆပါ။

အက်ပ်တောင်းသောအရာထည့်ရန်
Host သို့မဟုတ် IP203.0.113.10
Port8080
HTTP proxy URLhttp://203.0.113.10:8080

port ကို နှစ်ကြိမ်မထည့်ပါနှင့်။ အက်ပ်တွင် port အကွက်ရှိပြီးသားဖြစ်လျှင် host အကွက်ထဲ 203.0.113.10:8080 ထည့်ခြင်းက စာကြောင်းတစ်ခုလုံးကို hostname အဖြစ် resolve လုပ်ရန် ကြိုးစားစေနိုင်သည်။ ထိုနည်းတူ IP လိပ်စာသက်သက်သာ လိုကြောင်း ရှင်းလင်းထားသည့် အကွက်တွင် scheme မထည့်ပါနှင့်။

Scheme သည် ဝန်ဆောင်မှုနှင့် ကိုက်ညီရမည်။ လိပ်စာမပြောင်းမီ client ပံ့ပိုးမှုအလိုက် HTTP သို့မဟုတ် SOCKS5 ရွေးပါ။ HTTP endpoint ရှေ့ socks5:// ရေးခြင်းက client ပို့သောအရာကို ပြောင်းလဲသည်။ ထိုဆာဗာတွင် SOCKS5 ဖွင့်ပေးခြင်း မဟုတ်ပါ။

URL ထဲ IPv6 အတွက် လေးထောင့်ကွင်း လိုသည်

IPv6 လိပ်စာတွင် ကော်လံများ ပါပြီးသားဖြစ်၍ URL သည် port မထည့်မီ လိပ်စာကို လေးထောင့်ကွင်းဖြင့် ဝန်းရံသည်။

http://[2001:db8::10]:8080
socks5://[2001:db8::10]:1080

ကွင်းမရှိလျှင် လိပ်စာနှင့် port နယ်နိမိတ် မရှင်းပါ။ အကွက်ခွဲထားသော အက်ပ်က ပုံမှန်အားဖြင့် host အဖြစ် 2001:db8::10 နှင့် port အဖြစ် 8080 လိုသည်။ ထိုအက်ပ်၏ ဖြည့်သွင်းပုံကို လိုက်နာပါ။ ဤလိပ်စာနှစ်ခုလုံးသည် မှတ်တမ်းဥပမာများဖြစ်ပြီး အလုပ်လုပ်နေသော proxy မဟုတ်ပါ။

ကော်လံတိုင်း၌ ခွဲမည့်အစား URL ကို parse လုပ်ပါ

Python script အတိုတစ်ခုက စံ URL parser ဖြင့် IPv4 URL နှင့် ကွင်းပါသော IPv6 URL များကို ကိုင်တွယ်နိုင်သည်။

from urllib.parse import urlsplit

proxy = urlsplit("http://[2001:db8::10]:8080")
print(proxy.scheme)
print(proxy.hostname)
print(proxy.port)

hostname property သည် ကွင်းမပါသော လိပ်စာကို ပြန်ပေးသည်။ မူရင်း string ကို ကော်လံတိုင်း၌ ခွဲလျှင် ဤဥပမာ ပျက်သွားမည်။ တကယ့် importer တွင် host မပါခြင်း၊ မပံ့ပိုးသော scheme နှင့် 1–65535 ပြင်ပ port များကိုလည်း ငြင်းပယ်ပါ။ URL parse လုပ်ခြင်းက အစိတ်အပိုင်းများကို ပေးပြီး ဝန်ဆောင်မှုရှိကြောင်း မသက်သေပြပါ။

စာရင်းတွင် အသုံးပြုသူအမည်နှင့် စကားဝှက်ပါလျှင်

အသုံးများသော URL ဖွဲ့စည်းပုံမှာ http://username:password@host:port ဖြစ်သည်။ ဝင်ရောက်ခွင့်အချက်အလက်အတွင်း @၊ # နှင့် / ကဲ့သို့ စာလုံးများကို မှန်ကန်စွာ URL encoding လုပ်ရမည်။ client က ဝင်ရောက်ခွင့်အချက်အလက်အတွက် အကွက်ခွဲပေးထားလျှင် URL ကို ကိုယ်တိုင်ဆောက်ခြင်းထက် ထိုအကွက်များသုံးခြင်းက ပိုလွယ်လေ့ရှိသည်။

ကော်လံဖြင့် ခွဲထားသော ဝင်ရောက်ခွင့် string ကို မပြောင်းမီ ပံ့ပိုးသူ၏ မူရင်းပုံစံကို စစ်ပါ။ ထိုသို့ခွဲထားသော အကွက်လေးခုအတွက် ကမ္ဘာသုံးအဓိပ္ပာယ်တစ်မျိုးတည်း မရှိပါ။ စကားဝှက်ကိုယ်တိုင်တွင်လည်း ကော်လံပါနိုင်သည်။ ရိုးရိုး IP:port လိုင်းများအတွက် ဆောက်ထားသော parser က အခြားပုံစံကို တိတ်တဆိတ် မခန့်မှန်းသင့်ပါ။

ဆက်စပ်ဆောင်းပါးများ