FTP-niðurtøka gjøgnum SOCKS við PycURL
Lát libcurl stýra stýri- og passivu data-sambandinum í eini FTP-niðurtøku gjøgnum ein SOCKS5-proxy.
PycURL vísir FTP- og SOCKS-stuðulin í libcurl gjøgnum eitt transfer-handtak. Í eini passivari FTP-niðurtøku kann forritið lata bæði stýrisambandið og tað serstaka datasambandið um hendur á tí implementatiónini.
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 er FTP-tilfeingis-URL'in hjá forritinum, og output er ein longu opnað binær útstreymur. Tíðarmørkini eru dømi um mørk, ið veljast eftir væntaðari fílustødd og sambandi. Til ein almennan FTP-tilfeingi, har almenningstilgongd er loyvd, bjóðar SOCKS5-proxy-listin framboð til proxy-URL'ina; kanna, at tann valdi knúturin loyvir bæði stýri- og passiva datamálið.
socks5h letur SOCKS-proxy'num um at loysa málamyndarhóstnavnið. NOPROXY er beinleiðis tómt, so ein arvaður no_proxy-umhvørvisstilling ikki fer uttanum leiðina í hesi flytingini.
Lat virknan FTP vera óvirkin: tað væntar eitt innkomandi samband frá ambætaranum og er ikki tøkt í hesum proxy-hátti. Útferðarstefnan hjá proxy'num má loyva FTP-stýriportin og tann passiva data-portin, ið er valdur til flytingina. Tí prógvar ein bara væleydnað innskráning ikki, at fílan kann takast niður.
Tá ið váttan er neyðug, brúka PROXYUSERNAME og PROXYPASSWORD í PycURL til millumliðið; FTP-ambætarans innskráningarupplýsingar hoyra til FTP-sambandið.