In FTP-download fia SOCKS mei PycURL
Lit libcurl de kontrôle- en passive dataferbining fan in FTP-download fia in SOCKS5-proxy beheare.
PycURL eksposearret libcurl syn FTP- en SOCKS-stipe fia ien transferhandle. By in passive FTP-download kin de applikaasje sawol de kontrôleferbining as de aparte dataferbining oan dy ymplemintaasje oerlitte.
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 is de FTP-boarne-URL fan de applikaasje, en output is in al iepene binêre útfierstream. De tiidlimiten binne foarbyldgrinzen dy't keazen wurde neffens de ferwachte bestânsgrutte en ferbining. Foar in iepenbier FTP-boarne dêr't iepenbiere tuskenpersoanen tastien binne, biedt de SOCKS5-proxylist kandidaten foar de proxy-URL; kontrolearje oft it keazen knooppunt sawol it kontrôle- as it passive datadoel tastean.
socks5h draacht it oplossen fan de bestimminghostnamme oer oan de SOCKS-proxy. NOPROXY is bewust leech, sadat in erfd no_proxy-omjouwingsynstelling de rûte foar dizze transfer net omsylet.
Lit aktive FTP útskeakele: it ferwachtet in ynkommende serverferbining en is net beskikber yn dizze proxymodus. It útfierbelied fan de proxy moat de FTP-kontrôlepoarte en de foar de transfer keazen passive datapoarte tastean. In slagge oanmelding bewiist dus op himsels net dat it bestân download wurde kin.
As autentikaasje nedich is, brûk PycURL syn PROXYUSERNAME en PROXYPASSWORD foar de tuskenpersoan; de FTP-serverrigels hearre by de FTP-ferbining.