Niżżel FTP permezz ta' SOCKS bil-PycURL
Ħalli lil libcurl jimmaniġġja l-konnessjoni tal-kontroll u tad-data passiva ta' niżżla FTP permezz ta' prokura SOCKS5.
PycURL tesponi l-appoġġ tal-FTP u SOCKS ta' libcurl permezz ta' manku tat-trasferiment wieħed. F'niżżla FTP passiva, l-applikazzjoni tista' tħalli kemm il-konnessjoni tal-kontroll kif ukoll il-konnessjoni tad-data separata lil dik l-implimentazzjoni.
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 huwa l-URL tar-riżorsa FTP tal-applikazzjoni, u output huwa fluss tal-ħruġ binarjali diġà miftuħ. Il-limiti ta' żmien huma limiti eżemplari li għandhom jintgħażlu skont id-daqs tal-fajl u l-konnessjoni mistennija. Għal riżorsa FTP pubblika fejn huma permessi intermedjarji pubbliċi, il-lista tal-prokuri SOCKS5 toffri kandidati għall-URL tal-prokura; iċċekkja li n-nodu magħżul jippermetti kemm id-destinazzjoni tal-kontroll kif ukoll dik tad-data passiva.
socks5h tiddelega r-riżoluzzjoni tal-isem tal-host tad-destinazzjoni lill-prokura SOCKS. NOPROXY hija apposta vojta biex setting tal-ambjent no_proxy li jintiret ma jaqbiżx ir-rotta għal dan it-trasferiment.
Ħalli l-FTP attiv mitfi: jistenna konnessjoni deħlin mis-server u mhuwiex disponibbli f'dan il-mod tal-prokura. Il-politika tal-ħruġ tal-prokura trid tippermetti l-port tal-kontroll FTP u l-port tad-data passiva magħżul għat-trasferiment. Għalhekk login b'suċċess waħdu ma jipprovax li l-fajl jista' jitniżżel.
Meta tkun meħtieġa l-awtentikazzjoni, uża PROXYUSERNAME u PROXYPASSWORD tal-PycURL għall-intermedjarju; il-kredenzjali tas-server FTP jappartjenu għall-konnessjoni FTP.