Requests အတွက် IPv4 ip:port:user:password ထည့်သွင်းချက်များကို ပြောင်းလဲပါ
ip:port:user:password ကို ကန့်သတ်ခွဲခြားမှုဖြင့် ခွဲထုတ်ပြီး ပရောက်စီမြေပုံ မတည်ဆောက်မီ အထောက်အထား အစိတ်အပိုင်းများကို ကုဒ်လုပ်ပါ။
HTTP ပရောက်စီ ဝန်ဆောင်မှုပေးသူ၏ IPv4 ပုံစံ ip:port:user:password အတွက် တန်ဖိုးကို Requests သို့ မပေးမီ အကွက်များကို ပြောင်းလဲပါ:
from ipaddress import IPv4Address
from urllib.parse import quote
def proxy_map(line):
host, port, user, password = line.rstrip('\r\n').split(':', 3)
host = str(IPv4Address(host))
port = int(port)
if not 1 <= port <= 65535:
raise ValueError('Proxy port is out of range')
credentials = quote(user, safe='') + ':' + quote(password, safe='')
url = f'http://{credentials}@{host}:{port}'
return {'http': url, 'https': url}
ကန့်သတ်ခွဲခြားမှုသည် စကားဝှက်အတွင်းရှိ နောက်ထပ် ကော်လံများကို ထိန်းသိမ်းထားသည်။ လိုင်းအဆုံးသတ်များကိုသာ ဖယ်ရှားခြင်းသည် အထောက်အထား၏ အစိတ်အပိုင်း ဖြစ်နိုင်သော ကွက်လပ်များကို တိတ်ဆိတ်စွာ မဖယ်ရှားစေရန် ကူညီသည်။
အသုံးပြုသူအမည်နှင့် စကားဝှက်ကို သီးခြား URL အစိတ်အပိုင်းများအဖြစ် ကုဒ်လုပ်ပါ။ မူရင်းစကားဝှက်ရှိ @ သင်္ကေတကို ပရောက်စီ ဟိုစ့်ရှေ့ ခွဲခြားသင်္ကေတနှင့် မရောထွေးရပါ။ ဤလုပ်ဆောင်ချက်သည် မူရင်း အထောက်အထားများကို မျှော်လင့်သည်; ကုဒ်လုပ်ပြီးသား စာသားကို ပေးပို့ပါက ရာခိုင်နှုန်း သင်္ကေတကို ထပ်မံ ကုဒ်လုပ်နိုင်သည်။
ပြန်ပေးသော မြေပုံသည် HTTP နှင့် HTTPS ဦးတည်ရာများအတွက် ဤပရောက်စီကို ရွေးချယ်သည်။ http://192.0.2.10 ကဲ့သို့ သော့သည် Requests တွင် အခြားအဓိပ္ပာယ် ရှိသည်: ၎င်းသည် ထို ဦးတည်ရာ ဟိုစ့်အတွက် လမ်းကြောင်းကို ရွေးချယ်သည်။ ၎င်းသည် ပရောက်စီ ဆာဗာအုပ်စုအတွက် အညွှန်းမဟုတ်ပါ။
ခွဲခြမ်းစိတ်ဖြာသူသည် ဖော်ပြထားသော IPv4 ပုံစံကို တမင်လက်ခံသည်။ ၎င်းသည် ကော်လံပါသော အသုံးပြုသူအမည်များ သို့မဟုတ် ကွင်းမပါသော IPv6 လိပ်စာများကို မဖုံးလွှမ်းပါ; ထိုအရာများအတွက် ရှင်းလင်းသော ထည့်သွင်းမှု ပုံစံ လိုအပ်သည်။ ဖန်တီးထားသော အထောက်အထားပါ URL များကို ပုံမှန် မှတ်တမ်းများမှ ခပ်ခွာခွာ ထားပါ။