我经常通过发出 HTTP GET 请求来访问一个 Web 服务器,如下所示:http://www.example.com/index.php?file=12&hd=0
它返回一个OK
响应,其内容类型为video/x-flv
,内容长度各不相同。显然,这会下载一个.flv
文件,既然我正在下载它,那么它肯定托管在网络上的某个地方。
然而,我不知道如何检索直接的此文件的 URL。我尝试使用 Wireshark 和 Fiddler4,但它们没有帮助。我试图获取 URL,以便可以在同步视频,它可以接受视频文件的直接 URL。但是尝试使用上面示例的链接不起作用。
答案1
我认为没有其他方式可以访问该文件。PHP 脚本可能只是读取私有本地文件并将数据重定向到输出流。
这样做可能是为了防止热链接。因为必须调用 PHP 脚本才能下载文件,所以它可以在将数据传输到客户端之前检查某些内容(例如,您是否已登录)。
如果脚本没有检查任何内容(或者只检查您的 IP 地址)并且程序因为没有扩展名而拒绝该 URL,您可以尝试伪造它:
http://www.example.com/index.php?file=12&hd=0&ext=.flv
通过向 URL 添加虚拟参数使得.flv
程序可能会接受该 URL。
答案2
不一定存在直接访问文件的方法。
它可能位于网络服务器的私人文件夹中,也可能位于只有网络服务器可以访问的完全不同的服务器上。发布的 URL 可能是访问该文件的唯一公共方法。
除非您在 wireshark 捕获中看到 301 或 302 重定向,否则无法询问 Web 服务器以找出它从哪里获取文件。