首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在互联网上获取文件版本但不下载?

如何在互联网上获取文件版本但不下载?
EN

Stack Overflow用户
提问于 2009-08-10 05:53:50
回答 5查看 738关注 0票数 3

我得到一个文件url,例如http://cidian.youdao.com/download/YoudaoDict.exe

如何获取其版本但不下载?

注意1:如果你先把文件下载到你的电脑上,有很多方法可以获取它

版本,例如,您可以使用窗口工具"filever.exe“来获取版本。

但我不想下载它,至少不下载它all.how我能做什么?等待你的

帮助!谢谢。

注意2:我已经尝试了获取文件的一部分以获取版本的方法:

首先,我使用下载工具" wget.exe“下载了文件的一部分(wget.exe是

一个单线程的下载工具,它可以确保从头部下载)

其次,我使用"filever.exe“来获取文件版本。

通过这种方式,有些软件我可以得到它的版本,但有些软件不能(它们必须都是

下载).I不知道为什么。

EN

回答 5

Stack Overflow用户

发布于 2009-08-10 06:24:15

我注意到那个特定的exe链接支持字节范围请求。

代码语言:javascript
复制
$ curl -I http://cidian.youdao.com/download/YoudaoDict.exe
HTTP/1.1 200 OK
...
Accept-Ranges: bytes
Content-Length: 4820792
...
Content-Type: application/octet-stream

您可以发出一个或多个HTTP字节范围请求,以获取确定版本所需的文件部分。如果文件在您的硬盘上,您可能会多次请求获取文件的各个部分。

例如,基于HTTP/1.1 spec,您可以使用此请求头部请求前500个字节:

代码语言:javascript
复制
curl -H"Range: bytes=0-499" http://... -o bytes-0-499.dat
票数 4
EN

Stack Overflow用户

发布于 2009-08-10 06:01:35

版本号(如果有)嵌入在.exe文件本身中。您必须至少下载文件的一部分,才能检索这些元数据。

查看.exe file format spec

票数 3
EN

Stack Overflow用户

发布于 2009-08-10 06:15:43

您可以执行HTTP HEAD请求,服务器可能会以Content-Length格式报告项目的大小。它还可能在Last-Modified header下报告一个版本。此外,ETag可能出于相同的目的而存在。

您可以使用netcat进行测试:

代码语言:javascript
复制
> nc cidian.youdao.com 80
HEAD /download/YoudaoDict.exe HTTP/1.1
Host: cidian.youdao.com

HTTP/1.1 200 OK
Date: Mon, 10 Aug 2009 06:11:59 GMT
Server: Apache
ETag: "Dcm1w6Vxg51"
Last-Modified: Sat, 08 Aug 2009 02:18:40 GMT
Accept-Ranges: bytes
Content-Length: 4820792
X-Request-Received: t=1249884719506801
X-Request-Processing-Time: D=906244
Content-Type: application/octet-stream

正如您所看到的,在您的示例中,所有三个头都已给出,因此您可以根据该信息猜测版本更改。我总是检查以确保Date和Last-Modified不同,因为对于脚本生成的页面,有时后者被设置为前者。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1253282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档