2012-02-08 19 views
9

Sto cercando di utilizzare un file batch con wget per scaricare il file pubblico FCC da quiWGET 401 non autorizzato

http://wireless.fcc.gov/uls/data/complete/l_micro.zip

Quando intially eseguire il file batch con i parametri

wget --server-response -owget.log http://wireless.fcc.gov/uls/data/complete/l_micro.zip 

Non riesce con un errore non autorizzato HTTP 401. Posso riprovare a questo punto e continua a non riuscire. Tuttavia ho notato che se apro IE, avvio un download e annullo quando viene richiesto di salvare, riesco a rieseguire il file batch e si esegue perfettamente!

Qui è la mia risposta del server dettagliata dal registro

--2012-02-06 14:32:24-- http://wireless.fcc.gov/uls/data/complete/l_micro.zip 
Resolving wireless.fcc.gov (wireless.fcc.gov)... 192.104.54.158 
Connecting to wireless.fcc.gov (wireless.fcc.gov)|192.104.54.158|:80... connected. 
HTTP request sent, awaiting response... 
    HTTP/1.1 302 Found 
    Location: REMOVED - appears to have my IP 
    Cache-Control: no-cache 
    Pragma: no-cache 
    Content-Type: text/html; charset=utf-8 
    Connection: close 
    Content-Length: 513 
Location: REMOVED [following] 
--2012-02-06 14:32:24-- REMOVED 
Resolving REMOVED... 192.168.2.11 
Connecting to REMOVED|192.168.2.11|:80... connected. 
HTTP request sent, awaiting response... 
    HTTP/1.1 401 Unauthorized 
    Cache-Control: no-cache 
    Pragma: no-cache 
    WWW-Authenticate: NTLM 
    WWW-Authenticate: BASIC realm="AD_BCAAA" 
    Content-Type: text/html; charset=utf-8 
    Proxy-Connection: close 
    Set-Cookie: BCSI-CS-8ECFB6B4AA642EF0=2; Path=/ 
    Connection: close 
    Content-Length: 575 
Authorization failed. 

Ecco il registro dopo aver fatto la mia piccola procedura di IE e farla funzionare

--2012-02-08 15:52:43-- http://wireless.fcc.gov/uls/data/complete/l_micro.zip 
Resolving wireless.fcc.gov (wireless.fcc.gov)... 192.104.54.158 
Connecting to wireless.fcc.gov (wireless.fcc.gov)|192.104.54.158|:80... connected. 
HTTP request sent, awaiting response... 
    HTTP/1.1 200 OK 
    Server: Sun-Java-System-Web-Server/7.0 
    Date: Fri, 27 Jan 2012 18:37:51 GMT 
    Content-type: application/zip 
    Last-modified: Sun, 22 Jan 2012 11:18:09 GMT 
    Etag: "46fa95c-4f1bf071" 
    Accept-ranges: bytes 
    Content-length: 74426716 
    Connection: Keep-Alive 
    Age: 1045014 
Length: 74426716 (71M) [application/zip] 
Saving to: `l_micro.zip' 

Ogni aiuto è apprezzato!

+0

Il tuo comando funziona perfettamente per me ... – jglouie

+0

Ho tentato 'wget http: // wireless.fcc.gov/uls/data/complete/l_micro.zip' e ho ottenuto un file' l_micro.zip' di '74693506' byte con sha1sum di '1f8393bf6231bfa9689ec91cab6a660244f35605'. –

+0

Hai un proxy trasparente sulla tua rete? Puoi eseguire wireshark o Fiddler nella tua sessione di IE per vedere cosa sta facendo in modo diverso? –

risposta

0

Provare a impostare una stringa di user-agent con wget - ad es.

--user-agent=Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) 

E 'del tutto possibile per un sito di respingere richieste da determinati agenti utente, soprattutto se si guarda da eludere "soliti" rotte per informazioni (cioè attraverso pagine web).

Anche se questo non spiega il problema, è comunque una buona idea. Forse il sito implementa un meccanismo per cui quando si naviga con un browser "noto" (es. IE) allora memorizza il tuo IP come "sicuro", quindi consente a qualsiasi agente utente dal tuo IP di scaricare qualsiasi cosa :)

+0

Ho provato il tuo suggerimento e ho anche utilizzato la mia UA dal mio browser e non mi ha aiutato. Sembra che sia acceso e spento, quando sono salito sul mio computer stamattina ha funzionato bene a prescindere dalle impostazioni e di recente ha smesso di funzionare. Questo potrebbe essere in qualche modo un problema di firewall o è probabilmente qualcos'altro? – user1192537

9

Hai un Blue Coat gateway web sicuro sulla rete, come dimostra la linea nella risposta:

Set-Cookie: BCSI-CS-8ECFB6B4AA642EF0=2; Path=/ 

sembra che vuole di autenticare, presumibilmente con le credenziali di dominio. Prova a passarli con --http-user e --http-passwd.

17

Se il sito ha semplicemente una configurazione htpassword, si può provare:

wget --user=admin --ask-password https://www.yourwebsite.com/file.zip 
+1

+1 Funziona alla grande quando si ottiene 401 non autorizzati. Grazie! – styfle

1

ho avuto un problema simile con il sito in base XWiki. dopo vari tentativi ho trovato una combinazione che ha funzionato per me più che bene

wget --no-check-certificato --auth-no-sfida -k -nc -p -l 1 r https://user:[email protected]

Penso che la chiave fosse --auth-no-challenge

5

Ho usato --auth-no-challenge e l'errore esatto è stato risolto.

+0

Perfetto ... L'API che stavo chiamando non inviava la richiesta di autenticazione. [Questa opzione] (https://www.gnu.org/software/wget/manual/html_node/HTTP-Options.html) forza wget a inviare sempre l'intestazione Autorizzazione. – mlathe

0

Sono venuto qui cercando di scoprire perché wget stava dando un messaggio non autorizzato 401 quando su un altro sistema il problema non si verificava.

Dopo aver installato una versione successiva di wget dal sorgente (il file binario non era disponibile nella mia distribuzione) ha funzionato.Non riesco a spiegarne il motivo, a parte il fatto che dev'essere una specie di bug, quindi se nessuno dei problemi sopra riportati risolve il problema, considera l'aggiornamento di wget.