2012-02-08 3 views
9

Я пытаюсь использовать пакетный файл с WGET, чтобы загрузить файл открытого FCC здесьWGET 401 Несанкционированное

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

Когда я intially запустить пакетный файл с параметрами

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

Он не работает с несанкционированной ошибкой HTTP 401. Я могу повторить в этот момент, и он продолжает терпеть неудачу. Однако я заметил, что если я открою IE, начните загрузку и отмените, когда будет предложено сохранить, я могу перезапустить командный файл, и он отлично работает!

Вот мой развернутый ответ сервера из журнала

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

Вот журнал после того, как делать мою маленькую процедуру IE и заставить его работать

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

Любая помощь приветствуется!

+0

Ваша команда безупречно работает со мной ... – jglouie

+0

Я попытался выполнить wget http: // wireless.fcc.gov/uls/data/complete/l_micro.zip' и получил файл 'l_micro.zip'' 74693506' байт с sha1sum '1f8393bf6231bfa9689ec91cab6a660244f35605'. –

+0

У вас есть прозрачный прокси-сервер в вашей сети? Можете ли вы запустить wirehark или fiddler на своей сессии IE, чтобы посмотреть, что он делает по-другому? –

ответ

0

Попробуйте установить строку user-agent с помощью wget - например.

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

это вполне осуществимо для сайта, чтобы отклонить запросы от определенных пользовательских агентов, особенно если они выглядят, чтобы быть в обход «обычных» маршруты к информации (т.е. через веб-страниц).

Хотя это не объясняет вашу проблему, это хорошая идея в любом случае. Возможно, сайт реализует механизм, при котором при просмотре «известного» браузера (например, IE) он затем кэширует ваш IP как «безопасный», а затем позволяет любому пользовательскому агенту с вашего IP-адреса загружать что-либо :)

+0

Я попробовал ваше предложение, а также использовал свой собственный UA из своего браузера, и это не помогло. Кажется, что он включен и выключен, когда я сел на свой компьютер сегодня утром, он отлично работал независимо от настроек и недавно прекратил работать. Может ли это как-то быть проблемой межсетевого экрана, или это может быть что-то еще? – user1192537

9

У вас есть Blue Coat безопасный веб-шлюз в сети, о чем свидетельствуют строки в ответ:

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

похоже, он хочет, чтобы вы аутентификацию, предположительно с помощью учетных данных домена. Попробуйте передать их --http-user и --http-passwd.

17

Если веб-сайт просто установку htpassword, вы можете попробовать:

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

+1 Это прекрасно работает, когда вы получаете 401 несанкционированного доступа. Благодаря! – styfle

1

У меня была аналогичная проблема с основанной на сайте XWiki. после нескольких попыток я нашел некоторую комбинацию, которая работала для меня просто отлично

Wget --no-чек-сертификат --auth-не-вызов -k -nc -p -l 1 -r https://user:[email protected]

Я думаю, что клавиша была --auth-no-challenge

5

Я использовал --auth-no-challenge и точную ошибку решить.

+0

Perfect ... API, который я вызывал, не отправлял вызов auth. [Этот параметр] (https://www.gnu.org/software/wget/manual/html_node/HTTP-Options.html) заставляет wget всегда отправлять заголовок авторизации. – mlathe

0

Я пришел сюда, пытаясь выяснить, почему wget давал 401 несанкционированное сообщение, когда в другой системе проблема не возникала.

После установки более поздней версии wget из источника (двоичный файл не был доступен в моем дистрибутиве) он работал.Я не могу объяснить, почему, за исключением того, что это должна быть какая-то ошибка, поэтому, если ни одно из указанных выше не устраняет вашу проблему, подумайте об обновлении wget.