2012-02-08 18 views
9

Próbuję użyć pliku wsadowego z wget, aby pobrać plik publicznego FCC stądWGET 401.

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

Kiedy intially uruchom plik wsadowy z parametrami

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

Nie powiedzie się z nieautoryzowanym błędem HTTP 401. Mogę spróbować ponownie w tym momencie i ciągle się nie udaje. Zauważyłem jednak, że jeśli otworzę IE, rozpocznę pobieranie i anuluję, gdy pojawi się monit o zapisanie, mogę ponownie uruchomić plik wsadowy i działa perfekcyjnie!

Oto mój szczegółowy odpowiedź serwera z dziennika

--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. 

Oto log po wykonaniu moją małą procedurę IE i uzyskanie go do pracy

--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' 

Każda pomoc jest mile widziana!

+0

Twoje polecenie działa bezbłędnie ... – jglouie

+0

Podjęto próbę 'wget http: // wireless.fcc.gov/uls/data/complete/l_micro.zip' i otrzymałem plik' l_micro.zip' z '74693506' bajty z sha1sum z '1f8393bf6231bfa9689ec91cab6a660244f35605'. –

+0

Czy masz przezroczysty serwer proxy w swojej sieci? Czy możesz uruchomić Wireshark lub Fiddler podczas sesji IE, aby zobaczyć, co robi inaczej? –

Odpowiedz

0

Spróbuj ustawić ciąg znaków użytkownika za pomocą wget - np.

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

to całkowicie wykonalne dla witryny, aby odrzucić żądania od niektórych agentów użytkownika, szczególnie jeśli wyglądają obchodzą „zwykłe” drogi do informacji (tj poprzez strony internetowe).

Chociaż nie wyjaśnia to twojego problemu, to i tak jest to dobry pomysł. Być może witryna implementuje mechanizm, w którym przeglądając "znaną" przeglądarkę (np. IE), buforuje twój IP jako "bezpieczny", a następnie pozwala dowolnemu agentowi użytkownika z twojego IP na pobranie czegokolwiek :)

+0

Próbowałem twojej sugestii, a także użyłem mojego własnego UA z mojej przeglądarki i to nie pomogło. Wygląda na to, że włącza się i wyłącza, kiedy rano wszedłem na swój komputer, wszystko działało bez względu na osadnictwo, a ostatnio przestało działać. Czy to może być problem z zaporą sieciową, czy jest to prawdopodobnie coś innego? – user1192537

9

Masz Blue Coat bezpieczna bramka internetowa w sieci, o czym świadczy linii w odpowiedzi:

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

wygląda na to, że chce, aby uwierzytelnić, przypuszczalnie z poświadczeń domeny. Spróbuj przekazać je za pomocą --http-user i --http-passwd.

17

Jeśli strona po prostu setup htpassword, można spróbować:

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

+1 Działa to doskonale, gdy otrzymujesz 401 nieautoryzowanych. Dzięki! – styfle

1

Miałem podobny problem z serwisu opartego na XWiki. po kilku próbach znalazłem jakąś kombinację, która pracowała dla mnie dobrze

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

Myślę, że kluczem było --auth-no-challenge

5

Użyłem --auth-no-challenge i dokładny błąd został rozwiązany.

+0

Idealnie ... Interfejs API, do którego dzwoniłem, nie wysyłał autoryzacji. [Ta opcja] (https://www.gnu.org/software/wget/manual/html_node/HTTP-Options.html) zmusza wget, aby zawsze wysyłać nagłówek Authorization. – mlathe

0

Przybyłem tutaj, próbując dowiedzieć się, dlaczego wget podał 401 nieautoryzowany komunikat, gdy w innym systemie problem nie wystąpił.

Po zainstalowaniu nowszej wersji wget ze źródła (plik binarny nie był dostępny w mojej dystrybucji) działało.Nie mogę wyjaśnić, dlaczego, z wyjątkiem tego, że musi to być jakiś błąd, więc jeśli żadna z powyższych poprawek nie rozwiąże problemu, rozważ uaktualnienie wget.