流媒体指在网络中使用流式传输技术的连续时基媒体,可以是音频、视频,也可以是多媒体文件。流式媒体在播放前并不下载整个文件,只将开始部分内容存入内存,流式媒体的数据流随时传送随时播放,所以在开始时会有一些延迟。流式一般是采用基于RTSP协议的实 时流式传输,what so called real time streaming, 流式文件也支持在播放前完全下载到硬盘,而通常流媒体网站隐匿了流式文件的真实地址,本文将详细说明如何利用network sniffer 获得其真实的地址,从而可以进行下载,实现流式文件的所见即所得。
Network Sniffer, 也就是网络嗅探器,它可以记录整个网络通讯内容。Sniffer可以是软件,也可以是硬件,软件的sniffer 当然一般都是 os-dependent, 本文实例中采用最普通的,基于win体系的 sniffer软件。
首先打开sniffer软件程序,选择自己要监测的网络设备(一般都是网卡了):
进入后,出现了当前系统正在运行的程序列表,如下图所示:
sinffer默认设置是记录网络设备的整个通讯过程, 而我们只需要tcp的连接数据,所以首先对sniffer进行设置,只显示基于tcp协议通信的数据,如下图所示。
设置参数完毕后,右键点击 internet explorer, 并选择enable monitor, 见下图
然后用ie浏览器点击流媒体的在线观看地址,当出现loading的时候,说明流媒体的真实地址已经从服务器端传了过来,这个时候,停止播放就可以了,因为下载下来看的比较爽。打开sniffer,出现下面的窗口
如图所示, 我们已经获取的文件的真实地址
这里注意一点,实际捕获的数据包是二进制的,显示的十六进制数据是
727473703A2F2F36312E3132392E3131332E3137392F6D6F766965342FCAA
EC3E6C2F1B7FCBBA8D0F52FCAAEC3E6C2F1B7FC30322E726D7662
用ultraedit 保存后来看的话,也就是:rtsp://61.129.113.179/movie4/十面埋伏花絮/十面埋伏02.rmvb
参照图示,本机发出请求后,此服务器是用80端口把真实的url通过数据包的形式发送过来,提供流媒体服务,还是选择了默认端口554,那么只要打开流媒体下载工具影音传送带,输入地址:rtsp://61.129.113.179:554/movie4/十面埋伏花絮/十面埋伏02.rmvb,就可以进行下载了。
这个方法从理论上来讲是网络流媒体地址获取的终极方法,因为流媒体服务器总要把流媒体文件的实际地址传送给用户使用的浏览器(图示中的incoming数据连接),并且这个地址,必须是浏览器所认知的,那么通过获取浏览器数据包的方式,我们就一定可以获得 其真实的地址。
