PycURL ဖြင့် SOCKS မှတစ်ဆင့် FTP ဒေါင်းလုဒ်
libcurl အား SOCKS5 ပရောက်စီမှတစ်ဆင့် FTP ဒေါင်းလုဒ်၏ ထိန်းချုပ်မှုနှင့် passive ဒေတာချိတ်ဆက်မှုများကို ကိုင်တွယ်ခွင့်ပြုပါ။
PycURL သည် libcurl ၏ FTP နှင့် SOCKS ပံ့ပိုးမှုကို လွှဲပြောင်းမှု လက်ကိုင်တစ်ခုဖြင့် ဖော်ထုတ်ပေးသည်။ passive FTP ဒေါင်းလုဒ်တွင် အက်ပလီကေးရှင်းသည် ထိန်းချုပ်မှု ချိတ်ဆက်မှုနှင့် သီးခြား ဒေတာချိတ်ဆက်မှု နှစ်ခုလုံးကို ထို အကောင်အထည်ဖော်မှုထံ အပ်နှံနိုင်သည်။
import pycurl
transfer = pycurl.Curl()
try:
transfer.setopt(pycurl.URL, ftp_url)
transfer.setopt(pycurl.PROXY, "socks5h://proxy.example.net:1080")
transfer.setopt(pycurl.NOPROXY, "")
transfer.setopt(pycurl.WRITEDATA, output)
transfer.setopt(pycurl.CONNECTTIMEOUT, 10)
transfer.setopt(pycurl.TIMEOUT, 60)
transfer.perform()
finally:
transfer.close()
ftp_url သည် အက်ပလီကေးရှင်း၏ FTP အရင်းအမြစ် URL ဖြစ်ပြီး output သည် ဖွင့်ပြီးသား ဒွိစုံ အထွက်စီးကြောင်း ဖြစ်သည်။ အချိန်ကန့်သတ်ချက်များသည် မျှော်မှန်းထားသော ဖိုင်အရွယ်အစားနှင့် ချိတ်ဆက်မှုအလိုက် ရွေးချယ်ရမည့် နမူနာ ကန့်သတ်ချက်များ ဖြစ်သည်။ အများသူငှာ ကြားခံများကို ခွင့်ပြုထားသော အများသူငှာ FTP အရင်းအမြစ်အတွက် SOCKS5 ပရောက်စီစာရင်း သည် ပရောက်စီ URL အတွက် ကိုယ်စားလှယ်လောင်းများကို ပေးသည်။ ရွေးချယ်ထားသော node သည် ထိန်းချုပ်မှုနှင့် passive ဒေတာ ဦးတည်ချက် နှစ်ခုလုံးကို ခွင့်ပြုကြောင်း စစ်ဆေးပါ။
socks5h သည် ဦးတည်ရာ လက်ခံကွန်ပျူတာအမည် ဖြေရှင်းမှုကို SOCKS ပရောက်စီထံ အပ်နှံသည်။ NOPROXY ကို တမင်တကာ အလွတ်ထားခြင်းသည် အမွေရရှိထားသော no_proxy ပတ်ဝန်းကျင် သတ်မှတ်ချက်က ဤလွှဲပြောင်းမှု၏ လမ်းကြောင်းကို ကျော်မသွားစေရန် ဖြစ်သည်။
active FTP ကို ပိတ်ထားပါ။ ၎င်းသည် ဆာဗာမှ ဝင်လာသော ချိတ်ဆက်မှုကို မျှော်လင့်ပြီး ဤပရောက်စီမုဒ်တွင် မရနိုင်ပါ။ ပရောက်စီ၏ အပြင်ထွက် မူဝါဒသည် FTP ထိန်းချုပ်မှု ပေါက်နှင့် လွှဲပြောင်းမှုအတွက် ရွေးထားသော passive ဒေတာပေါက်ကို ခွင့်ပြုရမည်။ ထို့ကြောင့် လော့ဂ်အင်ဝင်ရောက်မှု အောင်မြင်ရုံဖြင့် ဖိုင်ကို ဒေါင်းလုဒ်ရနိုင်ကြောင်း သက်သေမပြနိုင်ပါ။
အထောက်အထား စစ်ဆေးမှု လိုအပ်ပါက ကြားခံအတွက် PycURL ၏ PROXYUSERNAME နှင့် PROXYPASSWORD ကို အသုံးပြုပါ။ FTP ဆာဗာ အထောက်အထားများသည် FTP ချိတ်ဆက်မှုနှင့် သက်ဆိုင်သည်။