2012-02-08 258 views
9

我尝试使用批处理文件与WGET从这里WGET 401未授权

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

下载公开FCC文件中当我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 2012-02-08 21:10:44

+0

我尝试了'wget http:// wireless.fcc.gov/uls/data/complete/l_micro.zip',并得到了'74693506'的文件'l_micro.zip'字节与sha1sum的'1f8393bf6231bfa9689ec91cab6a660244f35605'。 – 2012-02-08 21:13:40

+0

您的网络上是否有透明代理?你可以在你的IE会话中运行wireshark或fiddler来看看它有什么不同吗? – 2012-02-09 17:56:39

回答

0

尝试使用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 2012-02-09 13:48:54

9

你有一个Blue Coat网络上的安全Web网关,就证明在响应行:

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 2013-04-04 23:18:15

1

我曾与XWiki实现基于网站类似的问题。多次尝试后,我发现了一些组合,对于工作我就好

的wget --no检查证书--auth-NO-挑战-k -NC -p -l 1 -r https://user:[email protected]

我认为关键是-auth-no-challenge

5

我用--auth-no-challenge,确切的错误得到解决。

+0

完美...我打电话给的API不是发送授权挑战。 [此选项](https://www.gnu.org/software/wget/manual/html_node/HTTP-Options.html)强制wget始终发送授权标头。 – mlathe 2018-03-09 16:28:11

0

我来到这里试图找出为什么wget在另一个系统上发出401未经授权的消息时,问题没有发生。

从源代码安装了更高版本的wget(二进制文件在我的发行版中不可用),它工作。我无法解释为什么,除非它必定是某种错误,所以如果上述方法都不能解决您的问题,请考虑升级wget。