VBScript binærfil http downloader Dette WSH-skriptet kan laste ned en fil fra en gitt nettadresse og lagre den på disk ved hjelp av en binær strøm. For å bruke koden på en ASP-side i stedet for WSH, bruk bare funksjonene BinaryGetURL () og SaveBinaryData () og erstatt CreateObject med Server. CreateObject. Dim objArgs Dim strURL Dim strFileName Sett objArgs WScript. Arguments Hvis objArgs. count 0 Deretter Wscript. echo (Syntax: GetBinary URL målfilnavn amp vbcrlf amp vbcrlf amp Eksempler: amp vbcrlf amp GetBinary serverfolderfile. zip amp vbcrlf amp GetBinary serverdat. zip c : dlfile. zip amp vbcrlf amp GetBinary serverfile. dat secure. dat amp vbcrlf amp GetBinary servernews. htm d: dataservernews. html) ElseIf objArgs. count 1 Så strURL objArgs. Item (0) strFileName strURL strFileName Erstatt (strFileName,,) strFileName Erstatt (strFileName, amp,) strFileName Erstatt (strFileName,,) strFileName Right (strFileName, Len (strFileName) - InStrRev (strFileName,)) Hvis strFileName Then strFileName strURL strFileName Erstatt (strFileName,,) strFileName Erstatt (strFileName,,) strFileName Erstatt (strFileName,,) Slutt hvis SaveBinaryData BinaryGetURL (strURL), strFileName ElseIf objArgs. count 2 Så strURL objArgs. Item (0) strFileName objArgs. Item (1) SaveBinaryData BinaryGetURL (strURL), strFileName Else Wscript. echo (For mange argumenter. Hvis en sti inneholder mellomrom, må du sette anførselstegn rundt argumentene.) Slutt hvis funksjon BinaryGetURL (strURL) Dim objWinHttp Dim lngTimeout Dim strMethod Dim strPostData Dim strUserAgentString Dim intSslErrorIgnoreFlags Dim blnEnableRedirects Dim blnEnableHttpsToHttpRedirects LngTimeout 59000 milliseconds. strMethod GET strPostData strUserAgentString binarygetter1.0 intSslErrorIgnoreFlags 13056 13056 ignorere alle feile, 0 aksepterer ingen feile blnEnableRedirects Sanne blnEnableHttpsToHttpRedirects Sann Set objWinHttp Create (WinHttp. WinHttpRequest.5.1) objWinHttp. SetTimeouts lngTimeout, lngTimeout, lngTimeout, lngTimeout objWinHttp. Option (0) strUserAgentString objWinHttp Obs Send (strPostData) Hvis (objWinHttp. Status 200) Så BinaryGetURL objWinHttp. ResponseBody End Hvis Set objWinHttp Ingen End End Function Funksjon SaveBinaryData (arrByteArray, strFileName) Hvis VarType (arrByteArray) gt 8192 Deretter Dim objBinaryStream Sett objBinaryStream CreateObject (ADODB. Stream) objBinaryStream. Skriv 1 objBinaryStream. Open () objBinaryStream. Write (arrByteArray) objBinaryStream. SaveToFile strFileName, 2 Slutt hvis End FunctionVBScript WinHttp. WinHttpRequest.5.1 eksempel med feilhåndtering Dette WSH-eksempelscriptet kan få tilgang til tekstthmlxml-innholdet i en gitt URL (ved hjelp av HTTP GET eller POST). Hvis en WinHttpRequest-tilkoblingstidsavbrudd eller - feil oppstår, eller den eksterne serveren svarer med en feil, returneres feilopplysningene i stedet for innholdet. For å bruke koden på en ASP-side i stedet for WSH, erstatt Wscript. Echo med Response. Write og CreateObject med Server. CreateObject. (Se også hvordan du laster ned en binær fil med en avledet versjon av denne koden.) Funksjon GetDataFromURL (strURL, strMethod, strPostData) Dim lngTimeout Dim strUserAgentString Dim intSslErrorIgnoreFlags Dim blnEnableRedirects Dim blnEnableHttpsToHttpRedirects Dim strHostOverride Dim strLogin Dim strPassword Dim strResponseText Dim objWinHttp lngTimeout 59000 strUserAgentString httprequester0.1 intSslErrorIgnoreFlags 13056 13056: ignorere alle feile, 0: aksepterer ingen feile blnEnableRedirects sanne blnEnableHttpsToHttpRedirects Sann strHostOverride strLogin strPassword Set objWinHttp Create (WinHttp. WinHttpRequest.5.1) objWinHttp. SetTimeouts lngTimeout, lngTimeout, lngTimeout, lngTimeout objWinHttp. Open strMethod, strURL If strMethod POST Da objWinHttp. setRequestHeader Innholdstype, applicationx-www-form-urlencoded Slutt hvis Hvis strHostOverride ltgt Da objWinHttp. SetRequestHeader Verts, strHostOverride End Hvis objWinHttp. Option (0) strUserAgentString objWinHttp. Option (4) intSslEr rorIgnoreFlags objWinHttp. Option (6) blnEnableRedirects objWinHttp. Option (12) blnEnableHttpsToHttpRedirects Hvis (strLogin ltgt) Og (strPassword ltgt) Så objWinHttp. SetCredentials strLogin, strPassword, 0 Slutt hvis feilen fortsetter Neste objWinHttp. Send (strPostData) Hvis Err. Number 0 Så hvis objWinHttp. Status 200 Da GetDataFromURL objWinHttp. ResponseText Else GetDataFromURL HTTP forsterker objWinHttp. Status forsterker objWinHttp. StatusText End Hvis annen GetDataFromURL Feil forsterker Err. Number amp amp Err. Source amp amp Err. Description End Hvis På Feil GoTo 0 Set objWinHttp Nothing End FunctionWeb Binær nedlastingsmetoder Her er den vanlige metoden for å utføre en binær nedlasting over HTTP. Den forsøker fire forskjellige binære nedlastningsfunksjoner, og har to separate metoder for lagring av binær til disk. Ganske bulletproof: Jeg spilte rundt og fant andre måter du kan misbruke systemet til å gjøre en binær nedlastning WSC-fil: Du trenger ikke å registrere WSC-filer. I stedet kan du spesifisere plasseringen i skriptet ditt. Du kan til og med spesifisere en HTTP-posisjon. Filen lastes ned automatisk og ender opp i IE-cachen din. Hvis du angir noe annet enn en ekte WSC-fil som målet, blir det lastet ned og kjører som et skript. Som kommer til å kaste en feil Så du bare blokkere feilen: På feil Fortsett Neste GetObject script: ericphelpsimagelogo1.gif Koden ovenfor er vanlig VBS kode. Ingenting å gjøre med WSC-filer, bortsett fra at GetObject-metoden med script: protokollen brukes NORMALLISK for å få en WSC-fil. Vi bruker det her for å få noe annet. Ovennevnte VBS-kode vil laste ned en grafikk fra min nettside og slippe den i IE-cachen. For å finne filen i hurtigbufferen, bruk kode som ligner på dette: I virkeligheten vil du søke i hurtigbufferen FIRST, slette alle kamper du fant, og last ned filen du ønsket. Så hva du finner i hurtigbufferen, er sikkert det du vil ha. WSF-fil: Hvis du skriver VBS-koden i WSH-filer i stedet for i VBS-filer, får du angi mange flere alternativer. Inkludert hvor du får ekstern kode: ltjobgt ltscript languagevbscript srcericphelpsimagelogo1.gift ltjobgt Dessverre krasjer dette hele WSF-filen, så du må ha din VBS-fil opprette eller bruke en WSF-fil som den ovenfor og kjør den med wsh. Run eller wsh . Eks, så hovedkoden din vil overleve. Prøv noe som denne VBS-koden: Det er viktig at wsh. Run skje med CSCRIPT. EXE som den løpende motoren, og at den kjører med null som vinduetype. Når WSF-filen kaster sin feil, hvis motoren var wscript, ville det dukke opp en feildialog. Det er ille. Ved å bruke cscript-motoren blir feilen bare skrevet i DOS-boksen. Og ved å sette vinduetypen til null ser ingen selv DOS-boksen. Og sikkert nok, vil filen logo1.gif vises i din IE-cache. Igjen, når filen er i din cache, bruk kode som ligner på FindInCache og SearchForFile-funksjonene jeg viste ovenfor for å nevne ovenfor for å finne filen din.
No comments:
Post a Comment