发明名称 一种获取P2P视频系统节目信息的方法
摘要 一种获取P2P视频系统节目信息的方法,属于P2P网络监控领域,其特征在于,用一个选择性的安装在P2P视频客户端播放器所在主机上的P2P视频节目信息采集模块来捕获、过滤出该P2P视频客户端播放器与P2P视频服务器通信过程中由所述P2P视频客户端播放器向该P2P视频服务器发出的TCP数据包,提取超文本传输协议HTTP,并对HTTP协议进行还原,形成资源统一定位地址URL请求信息并将此URL所指向的包含P2P视频节目信息的文本文件下载到本地,再用预设的与每一个用ID标识的P2P视频系统相一一对应解析方法解析出所述对应文件中包含的P2P视频节目信息。本发明具有对硬件要求低、与P2P视频发布系统无关、实时性强、节目信息全面、详细、完整和准确的优点。
申请公布号 CN101729602A 申请公布日期 2010.06.09
申请号 CN200910241878.3 申请日期 2009.12.11
申请人 北京工业大学 发明人 张建标;管磊;张涵;张奇;朱通;赵旭强
分类号 H04L29/08(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 楼艮基
主权项 一种获取P2P视频系统节目信息的方法,其特征在于,所述方法是在一个由P2P视频服务器和各P2P视频客户端组成的P2P视频网络中依次按以下步骤实现的:步骤(1),选择一个P2P视频客户端,所述的P2P视频客户端是指在安装了P2P视频客户端播放器软件的主机上同时安装一个同步运行的数据包拦截器所组成的一个可以播放来自P2P视频服务器的视频节目的客户端系统,所述数据包拦截器是一个P2P视频节目信息采集模块,其中安装了依次相互串接的初始化模块、数据捕获模块,以及文件下载与解析模块,其中,初始化模块依次执行以下步骤:步骤(A-1):在初始化程序启动后,判断是否存在一个初始化文件,该初始化文件含有以下参数:确定要捕获的P2P视频系统,用一个ID唯一地表示,以便由此确定要采集哪一个P2P视频系统的节目信息,所述ID的安装路径Path,是指所述P2P视频系统的客户端播放器在所述的初始化模块运行的主机上的软件安装位置信息,所述ID所对应的数据包解析方法,定义为Parser,若:不存在所述的初始化文件,则输入一个初始化文件,转入步骤(A-2),若:存在所述的初始化文件,则转入步骤(A-2),步骤(A-2):输出所述的初始化文件;数据捕获模块依次执行以下步骤:步骤(B-1),读取所述的初始化文件,步骤(B-2),启动所述P2P视频客户端播放器并与所述的数据捕获模块同步运行,步骤(B-3),在所述P2P视频客户端与P2P视频播放器的通信过程中,拦截其中由所述P2P视频客户端播放器向P2P视频服务器发出的通信数据,其步骤如下:步骤(B-3-1),获得所述的P2P视频客户端播放器所在主机的网络适配器列表,得到网络适配器的名字,所述网络适配器又称网卡或网络接口卡,是一种用来将用户要传递的数据转换为网络上其它设备能够识别的格式的硬件设备,步骤(B-3-2),从所述网络适配器列表中选择一个默认为0号的网卡,并手动设置为混杂模式,所述网卡的混杂模式是指在此模式下网卡会接收所有经过网卡的数据包,步骤(B-3-3),初始化接收数据包的程序,至少把其中的端口号、IP地址设置为所述P2P视频服务器的端口和IP,完成对原始数据包的过滤,捕获数据包送入到指定的数据缓冲区中,步骤(B-3-4),按步骤(B-3-3)所述的方法捕获多个数据包,分配到各个制定的缓冲区中,步骤(B-3-5),判断是否达到所需要接收的数据包数目,若尚未达到,继续执行步骤(B-3-4),否则停止接收,执行步骤(B-3-6),步骤(B-3-6),把所述网卡从混杂模式置回正常接收模式,执行清理操作,复原现场,步骤(B-4),依次按以下步骤对步骤(B-3-5)拦截到的数据包进行处理,过滤出由所述P2P视频客户端播放器发向所述P2P视频服务器的传输控制协议TCP数据包:步骤(B-4-1),若所述数据缓冲区中数据包队列不为空,则从队列中任意取出一个数据包,步骤(B-4-2),判断步骤(B-4-1)中任意取得的一个数据包的类型,在丢弃非TCP协议类型的数据报后,执行步骤(B-4-3),步骤(B-4-3),判断此TCP数据包的源IP地址,若不是所述P2P视频客户端播放器发向P2P视频服务器的数据包,则丢弃,若是,则执行步骤(B-4-4),步骤(B-4-4),重复步骤(B-4-1)至步骤(B-4-4),直到所述数据包队列为空,步骤(B-5),依次按以下步骤,从步骤(B-4-4)中得到的数据包中还原出原始的由所述P2P视频客户端播放器发向所述P2P视频服务器的资源统一定位地址URL请求信息,步骤(B-5-1),从所述TCP数据包中分离出TCP首部和TCP报文段,分别存储到对应的数据存储区域中,步骤(B-5-2),读取所述TCP报文段中的超文本传输协议HTTP,步骤(B-5-3),依次按以下步骤对所述HTTP协议进行还原,得到由所述P2P视频客户端播放器向所述P2P视频服务器发出的资源统一定位地址URL请求信息,步骤(B-5-3-1),从所述超文本传输协议HTTP请求报文中抽取请求行、请求头部、空行和请求数据,步骤(B-5-3-2),根据P2P视频客户端播放器发向P2P视频服务器的HTTP请求的内容及P2P视频服务端的应答状态码,来判断是否是一个完整的请求/应答过程,步骤(B-5-3-2-1),所述HTTP请求的内容格式为:GET/HTTP/1.1Accept:*/*Accept-Language:zh-cnAccept-Encoding:gzip,deflateHost:其中,GET/HTTP/1.1:是请求行,包含了请求的方式、请求文件所在的路径等信息,Accept:指客户端能接受的文件格式,以便根据它判断并返回适当的文件格式,Accept-Language:指出客户端能接受的语言种类,其中包括中文简体zh-cn,Accept-Encoding:指客户端能接受的编码方式,Host:对应网址URL中的Web名称和端口号,步骤(B-5-3-2-2),所述P2P视频服务器端的应答状态代码的格式为:HTTP/1.1 200 OK,Content-Type:text/html;charset=UTF-8,其中,HTTP/1.1 200 OK:表示服务端应答状态代码为200,说明找到资源,并且一切正常,Content-Type:指定了返回的文件类型和编码,步骤(B-5-3-3),根据步骤(B-5-3-2-1)的P2P视频客户端播放器的请求内容和步骤(B-5-3-2-2)的P2P视频服务器的应答状态代码,分别读取其中的HTTP协议信息、Host主机信息和GET请求及路径信息,再通过http://+host+文件路径GET的组合,进行URL还原,组成一个由所述P2P视频客户端播放器向P2P视频服务器发出的资源统一定位地址URL请求信息,文件下载及解析模块,依次按以下步骤获取P2P视频节目的数据信息,步骤(C-1),从所述数据捕获模块输入所述资源统一定位地址URL请求信息、ID和数据包解析方法Parser信息,步骤(C-2),按以下步骤进行所述资源统一定位地址URL请求信息的过滤与下载,步骤(C-2-1),定义一个文本文件的扩展名集合或一个压缩包文件的扩展名集合,所述文本文件或压缩包文件中含有视频节目的有关信息,包含在所述资源统一定位地址URL请求信息中,步骤(C-2-2),把所有还原出的资源统一定位地址URL请求信息送入一个列表中,步骤(C-2-3),读出所述列表中的资源统一定位地址URL请求信息,并按以下步骤依次判断每一个请求:步骤(C-2-3-1),根据所述文件类型,确定所述文件属于所述文本文件的扩展名集合还是属于压缩文件的扩展名集合,若属于文本文件的扩展名集合,则读取文件内容执行步骤(C-2-3-2),若属于压缩文件的扩展名集合,则读取文件内容执行步骤(C-2-3-3)步骤(C-2-3-2),下载文本文件执行步骤(C-2-3-4),步骤(C-2-3-3),下载压缩包文件,调用解压缩程序,把压缩文件解压后输出,执行步骤(C-2-3-4),步骤(C-2-3-4),把读取得到的文件流下载到本地保存;步骤(C-3),依次按以下步骤解析步骤(C-2-3-4)中得到的文件:步骤(C-3-1),读取由所述数据捕获模块传来的ID和解析方法Parser信息,步骤(C-3-2),根据ID信息确定要解析的P2P视频系统,根据所述解析方法Parser信息调用相应的解析方法,步骤(C-3-3),解析文件内容,抽取所需的视频节目的信息,连同所述的ID信息一起输出;步骤(2),依次按以下步骤获取P2P视频节目信息,步骤(2.1),生成所述初始化文件,步骤(2.2),启动装载有P2P视频节目信息采集系统的P2P视频客户端播放器以及所述的数据捕获模块,步骤(2.3),捕获由所述P2P视频客户端播放器发向P2P视频服务器的数据包数据,步骤(2.4),从步骤(2.3)中得到的数据包数据中还原出由所述P2P视频客户端播放器发向所述P2P视频服务器的资源统一定位地址URL请求信息,其中,所述的资源统一定位地址URL请求信息所指向的文本文件或压缩包文件中已包含了P2P视频节目信息,步骤(2.5),过滤并下载所述URL请求信息所指向的文件,步骤(2.6),解析所述下载得到的文件内容,输出所选定的P2P视频系统的视频节目信息。
地址 100124 北京市平乐园100号