專利名稱:一種獲取p2p視頻系統(tǒng)節(jié)目信息的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于P2P網(wǎng)絡(luò)監(jiān)控領(lǐng)域,具體設(shè)計(jì)在于通過捕獲P2P視頻服務(wù)器與P2P視 頻客戶端的通信數(shù)據(jù)包,在對(duì)數(shù)據(jù)包進(jìn)行解析和協(xié)議還原的基礎(chǔ)上,發(fā)現(xiàn)描述P2P視頻節(jié) 目信息的文件,再通過節(jié)目信息文件的解析和抽取就能得到相應(yīng)的視頻節(jié)目信息。
背景技術(shù):
P2P視頻系統(tǒng),是個(gè)統(tǒng)一的稱謂,泛指所有的基于P2P技術(shù)進(jìn)行流媒體發(fā)布的網(wǎng)絡(luò) 視頻平臺(tái)。 基于P2P技術(shù)在互聯(lián)網(wǎng)上進(jìn)行視頻發(fā)布,比普通的基于Web技術(shù)的視頻發(fā)布方式 有更高的效率、更好的共享鼓勵(lì)機(jī)制,可以有效的節(jié)省帶寬、充分利用各個(gè)節(jié)點(diǎn)的資源、極 大的降低視頻服務(wù)器的負(fù)載,可以用較低的成本實(shí)現(xiàn)大規(guī)模的網(wǎng)絡(luò)視頻直播和點(diǎn)播。
P2P視頻系統(tǒng)可以用有限的服務(wù)能力為更多的用戶提供流媒體服務(wù)、可以高效的
發(fā)布和傳輸大容量的流媒體數(shù)據(jù)、可以最大限度的實(shí)現(xiàn)流媒體資源的交互和共享,為人們 的互聯(lián)網(wǎng)使用帶來很大的便利,但也產(chǎn)生了一些嚴(yán)重的問題。 當(dāng)前,P2P網(wǎng)絡(luò)視頻在互聯(lián)網(wǎng)上呈現(xiàn)出雜亂無序之勢(shì),違規(guī)視頻橫行、盜版視頻猖 獗,并且缺乏有效監(jiān)管,之所以會(huì)出現(xiàn)這種局面,就是因?yàn)榛赑2P技術(shù)的視頻發(fā)布動(dòng)態(tài)性 強(qiáng)、自由度高、在時(shí)間和空間上都有高度的無序性,與傳統(tǒng)的基于Web形式發(fā)布的視頻相 比,難以收集視頻信息、難以跟蹤視頻發(fā)布的情況,致使到目前為止,對(duì)基于P2P技術(shù)的視 頻系統(tǒng)難以進(jìn)行有效的監(jiān)管。 搜索、采集互聯(lián)網(wǎng)上P2P視頻系統(tǒng)的節(jié)目信息,是實(shí)現(xiàn)對(duì)P2P流媒體視頻傳播進(jìn)行 監(jiān)管的第一步,是信息安全管理、流媒體資源管理的前提條件,鑒于此,本發(fā)明提出了一種 獲取P2P視頻系統(tǒng)節(jié)目信息的實(shí)現(xiàn)方法。
發(fā)明內(nèi)容
—種獲取P2P視頻系統(tǒng)節(jié)目信息的方法,主要通過對(duì)某些已知的P2P視頻發(fā)布系 統(tǒng)的視頻節(jié)目發(fā)布模型的研究,分析P2P視頻發(fā)布服務(wù)器與P2P視頻客戶端播放器的交互 過程,挖掘出P2P視頻客戶端播放器在加載或更新自身播放列表時(shí)與P2P視頻服務(wù)器的內(nèi) 在通信規(guī)律,再在捕獲通信數(shù)據(jù)包的基礎(chǔ)上依據(jù)此規(guī)律從中分析出與P2P視頻節(jié)目信息有 關(guān)的數(shù)據(jù)內(nèi)容,從而達(dá)到獲取P2P視頻節(jié)目信息的目的。 本發(fā)明的特征在于所述方法是在一個(gè)由P2P視頻服務(wù)器和各P2P視頻客戶端組 成的P2P視頻網(wǎng)絡(luò)中依次按以下步驟實(shí)現(xiàn)的 步驟(1),選擇一個(gè)P2P視頻客戶端,所述的P2P視頻客戶端是指在安裝了 P2P視 頻客戶端播放器軟件的主機(jī)上同時(shí)安裝一個(gè)同步運(yùn)行的數(shù)據(jù)包攔截器所組成的一個(gè)可以 播放來自P2P視頻服務(wù)器的視頻節(jié)目的客戶端系統(tǒng),所述數(shù)據(jù)包攔截器是一個(gè)P2P視頻節(jié) 目信息采集模塊,其中安裝了依次相互串接的初始化模塊、數(shù)據(jù)捕獲模塊,以及文件下載與 解析模塊,其中,
初始化模塊依次執(zhí)行以下步驟 步驟(A-l):在初始化程序啟動(dòng)后,判斷是否存在一個(gè)初始化文件,該初始化文件 含有以下參數(shù) 確定要捕獲的P2P視頻系統(tǒng),用一個(gè)ID唯一地表示,以便由此確定要采集哪一個(gè) P2P視頻系統(tǒng)的節(jié)目信息, 所述ID的安裝路徑Path,是指所述P2P視頻系統(tǒng)的客戶端播放器在所述的初始化
模塊運(yùn)行的主機(jī)上的軟件安裝位置信息, 所述ID所對(duì)應(yīng)的數(shù)據(jù)包解析方法,定義為Parser, 若不存在所述的初始化文件,則輸入一個(gè)初始化文件,轉(zhuǎn)入步驟(A-2),
若存在所述的初始化文件,則轉(zhuǎn)入步驟(A-2),
步驟(A-2):輸出所述的初始化文件;
數(shù)據(jù)捕獲模塊依次執(zhí)行以下步驟
步驟(B-l),讀取所述的初始化文件, 步驟(B-2),啟動(dòng)所述P2P視頻客戶端播放器并與所述的數(shù)據(jù)捕獲模塊同步運(yùn)行, 步驟(B-3),在所述P2P視頻客戶端與P2P視頻播放器的通信過程中,攔截其中由
所述P2P視頻客戶端播放器向P2P視頻服務(wù)器發(fā)出的通信數(shù)據(jù),其步驟如下 步驟(B-3-1),獲得所述的P2P視頻客戶端播放器所在主機(jī)的網(wǎng)絡(luò)適配器列表,得
到網(wǎng)絡(luò)適配器的名字,所述網(wǎng)絡(luò)適配器又稱網(wǎng)卡或網(wǎng)絡(luò)接口卡,是一種用來將用戶要傳遞
的數(shù)據(jù)轉(zhuǎn)換為網(wǎng)絡(luò)上其它設(shè)備能夠識(shí)別的格式的硬件設(shè)備, 步驟(B-3-2),從所述網(wǎng)絡(luò)適配器列表中選擇一個(gè)默認(rèn)為0號(hào)的網(wǎng)卡,并手動(dòng)設(shè)置 為混雜模式,所述網(wǎng)卡的混雜模式是指在此模式下網(wǎng)卡會(huì)接收所有經(jīng)過網(wǎng)卡的數(shù)據(jù)包,
步驟(B-3-3),初始化接收數(shù)據(jù)包的程序,至少把其中的端口號(hào)、IP地址設(shè)置為所 述P2P視頻服務(wù)器的端口和IP,完成對(duì)原始數(shù)據(jù)包的過濾,捕獲數(shù)據(jù)包送入到指定的數(shù)據(jù) 緩沖區(qū)中, 步驟(B-3-4),按步驟(B-3-3)所述的方法捕獲多個(gè)數(shù)據(jù)包,分配到各個(gè)制定的緩 沖區(qū)中, 步驟(B-3-5),判斷是否達(dá)到所需要接收的數(shù)據(jù)包數(shù)目,若尚未達(dá)到,繼續(xù)執(zhí)行步 驟(B-3-4),否則停止接收,執(zhí)行步驟(B-3-6), 步驟(B-3-6),把所述網(wǎng)卡從混雜模式置回正常接收模式,執(zhí)行清理操作,復(fù)原現(xiàn) 場(chǎng), 步驟(B-4),依次按以下步驟對(duì)步驟(B-3-5)攔截到的數(shù)據(jù)包進(jìn)行處理,過濾出由 所述P2P視頻客戶端播放器發(fā)向所述P2P視頻服務(wù)器的傳輸控制協(xié)議TCP數(shù)據(jù)包
步驟(B-4-l),若所述數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)包隊(duì)列不為空,則從隊(duì)列中任意取出一個(gè) 數(shù)據(jù)包, 步驟(B-4-2),判斷步驟(B-4-l)中任意取得的一個(gè)數(shù)據(jù)包的類型,在丟棄非TCP 協(xié)議類型的數(shù)據(jù)報(bào)后,執(zhí)行步驟(B-4-3), 步驟(B-4-3),判斷此TCP數(shù)據(jù)包的源IP地址,若不是所述P2P視頻客戶端播放器
發(fā)向P2P視頻服務(wù)器的數(shù)據(jù)包,則丟棄,若是,則執(zhí)行步驟(B-4-4), 步驟(B-4-4),重復(fù)步驟(B-4-l)至步驟(B-4-4),直到所述數(shù)據(jù)包隊(duì)列為空,
步驟(B-5),依次按以下步驟,從步驟(B-4-4)中得到的數(shù)據(jù)包中還原出原始的由 所述P2P視頻客戶端播放器發(fā)向所述P2P視頻服務(wù)器的資源統(tǒng)一定位地址URL請(qǐng)求信息,
步驟(B-5-l),從所述TCP數(shù)據(jù)包中分離出TCP首部和TCP報(bào)文段,分別存儲(chǔ)到對(duì) 應(yīng)的數(shù)據(jù)存儲(chǔ)區(qū)域中, 步驟(B-5-2),讀取所述TCP報(bào)文段中的超文本傳輸協(xié)議HTTP, 步驟(B-5-3),依次按以下步驟對(duì)所述HTTP協(xié)議進(jìn)行還原,得到由所述P2P視頻客
戶端播放器向所述P2P視頻服務(wù)器發(fā)出的資源統(tǒng)一定位地址URL請(qǐng)求信息, 步驟(B-5-3-l),從所述超文本傳輸協(xié)議HTTP請(qǐng)求報(bào)文中抽取請(qǐng)求行、請(qǐng)求頭部、
空行和請(qǐng)求數(shù)據(jù), 步驟(B-5-3-2),根據(jù)P2P視頻客戶端播放器發(fā)向P2P視頻服務(wù)器的HTTP請(qǐng)求的
內(nèi)容及P2P視頻服務(wù)端的應(yīng)答狀態(tài)碼,來判斷是否是一個(gè)完整的請(qǐng)求/應(yīng)答過程, 步驟(B-5-3-2-1),所述HTTP請(qǐng)求的內(nèi)容格式為 GET/HTTP/1. 1 Accept:氺/氺 Acc印t-Langimge: zh_cn Accept-Encoding:gzip, deflate Host: 其中,GET/HTTP/1. 1 :是請(qǐng)求行,包含了請(qǐng)求的方式、請(qǐng)求文件所在的路徑等信息,
Acc印t :指客戶端能接受的文件格式,以便根據(jù)它判斷并返回適當(dāng)?shù)奈募袷剑?
Acc印t-Language :指出客戶端能接受的語言種類,其中包括中文簡(jiǎn)體zh-cn,
Acc印t-Encoding :指客戶端能接受的編碼方式,
Host :對(duì)應(yīng)網(wǎng)址URL中的Web名稱和端口號(hào), 步驟(B-5-3-2-2),所述P2P視頻服務(wù)器端的應(yīng)答狀態(tài)代碼的格式為
HTTP/1. 12000K, Content-Type:text/html ;charset = UTF_8, 其中,HTTP/1. 1 2000K :表示服務(wù)端應(yīng)答狀態(tài)代碼為200,說明找到資源,并且一 切正常, Content-Type :指定了返回的文件類型和編碼, 步驟(B-5-3-3),根據(jù)步驟(B_5-3-2_l)的P2P視頻客戶端播放器的請(qǐng)求內(nèi)容和步 驟(B-5-3-2-2)的P2P視頻服務(wù)器的應(yīng)答狀態(tài)代碼,分別讀取其中的HTTP協(xié)議信息、Host 主機(jī)信息和GET請(qǐng)求及路徑信息,再通過http: 〃+host+文件路徑GET的組合,進(jìn)行URL還 原,組成一個(gè)由所述P2P視頻客戶端播放器向P2P視頻服務(wù)器發(fā)出的資源統(tǒng)一定位地址URL 請(qǐng)求信息,文件下載及解析模塊,依次按以下步驟獲取P2P視頻節(jié)目的數(shù)據(jù)信息,
步驟(C-l),從所述數(shù)據(jù)捕獲模塊輸入所述資源統(tǒng)一定位地址URL請(qǐng)求信息、ID和 數(shù)據(jù)包解析方法Parser信息, 步驟(C-2),按以下步驟進(jìn)行所述資源統(tǒng)一定位地址URL請(qǐng)求信息的過濾與下載,
步驟(C-2-1),定義一個(gè)文本文件的擴(kuò)展名集合或一個(gè)壓縮包文件的擴(kuò)展名集合, 所述文本文件或壓縮包文件中含有視頻節(jié)目的有關(guān)信息,包含在所述資源統(tǒng)一定位地址 URL請(qǐng)求信息中,
步驟(C-2-2),把所有還原出的資源統(tǒng)一定位地址URL請(qǐng)求信息送入一個(gè)列表中,
步驟(C-2-3),讀出所述列表中的資源統(tǒng)一定位地址URL請(qǐng)求信息,并按以下步驟 依次判斷每一個(gè)請(qǐng)求 步驟(C-2-3-1),根據(jù)所述文件類型,確定所述文件屬于所述文本文件的擴(kuò)展名集 合還是屬于壓縮文件的擴(kuò)展名集合, 若屬于文本文件的擴(kuò)展名集合,則讀取文件內(nèi)容執(zhí)行步驟(C-2-3-2),
若屬于壓縮文件的擴(kuò)展名集合,則讀取文件內(nèi)容執(zhí)行步驟(C-2-3-3)
步驟(C-2-3-2),下載文本文件執(zhí)行步驟(C-2-3-4), 步驟(C-2-3-3),下載壓縮包文件,調(diào)用解壓縮程序,把壓縮文件解壓后輸出,執(zhí)行 步驟(C-2-3-4), 步驟(C-2-3-4),把讀取得到的文件流下載到本地保存; 步驟(C-3),依次按以下步驟解析步驟(C-2-3-4)中得到的文件 步驟(C-3-1),讀取由所述數(shù)據(jù)捕獲模塊傳來的ID和解析方法Parser信息, 步驟(C-3-2),根據(jù)ID信息確定要解析的P2P視頻系統(tǒng),根據(jù)所述解析方法
Parser信息調(diào)用相應(yīng)的解析方法, 步驟(C-3-3),解析文件內(nèi)容,抽取所需的視頻節(jié)目的信息,連同所述的ID信息一 起輸出;步驟(2)依次按以下步驟獲取P2P視頻節(jié)目信息,
步驟(2. 1),生成所述初始化文件, 步驟(2. 2),啟動(dòng)裝載有P2P視頻節(jié)目信息采集系統(tǒng)的P2P視頻客戶端播放器以及 所述的數(shù)據(jù)捕獲模塊, 步驟(2. 3),捕獲由所述P2P視頻客戶端播放器發(fā)向P2P視頻服務(wù)器的數(shù)據(jù)包數(shù) 據(jù), 步驟(2. 4),從步驟(2. 3)中得到的數(shù)據(jù)包數(shù)據(jù)中還原出由所述P2P視頻客戶端播 放器發(fā)向所述P2P視頻服務(wù)器的資源統(tǒng)一定位地址URL請(qǐng)求信息,其中,所述的資源統(tǒng)一定 位地址URL請(qǐng)求信息所指向的文本文件或壓縮包文件中已包含了 P2P視頻節(jié)目信息,
步驟(2.5),過濾并下載所述URL請(qǐng)求信息所指向的文件, 步驟(2. 6),解析所述下載得到的文件內(nèi)容,輸出所選定的P2P視頻系統(tǒng)的視頻節(jié) 目信息。 通過比較可以發(fā)現(xiàn),本發(fā)明的方案與技術(shù)具有以下特點(diǎn) 本發(fā)明在已經(jīng)分析出P2P視頻服務(wù)器與P2P視頻客戶端播放器的通信規(guī)律的基礎(chǔ) 上,通過旁路監(jiān)聽、數(shù)據(jù)包捕獲、協(xié)議還原等一系列操作,從中抽取出與視頻節(jié)目信息有關(guān) 的數(shù)據(jù),達(dá)到獲取P2P視頻節(jié)目信息的目的。其優(yōu)點(diǎn)在于1對(duì)硬件的要求低,對(duì)網(wǎng)絡(luò)質(zhì)量 的要求低——即發(fā)現(xiàn)成本低;2采用旁路監(jiān)聽的方法對(duì)P2P視頻節(jié)目信息進(jìn)行獲取,不依賴 于P2P視頻發(fā)布系統(tǒng)本身的機(jī)制;3采集P2P視頻節(jié)目信息的實(shí)時(shí)性強(qiáng),所獲取的節(jié)目信息 在當(dāng)前時(shí)刻及以后一段時(shí)間都是在線的、可正常播放的。4以P2P視頻客戶端節(jié)目信息為對(duì) 象,凡是能夠顯示到播放器端的節(jié)目信息都可能獲取到,獲取結(jié)果完整、信息準(zhǔn)確;5所獲 取的P2P視頻節(jié)目信息不是一個(gè)單一的數(shù)據(jù),而是一個(gè)多維的、能夠描述P2P視頻節(jié)目詳細(xì) 特征的數(shù)據(jù)集,節(jié)目信息詳細(xì)而全面。 本發(fā)明不同于通過網(wǎng)頁爬行的方式獲取P2P視頻節(jié)目信息,有些節(jié)目信息是發(fā)布到網(wǎng)站上的,通過網(wǎng)頁爬行也能夠獲取部分節(jié)目信息,但不夠全面和準(zhǔn)確,而且在爬行的過 程中需要嚴(yán)重依賴互聯(lián)網(wǎng)環(huán)境、需要反復(fù)訪問服務(wù)器,不僅效率低,也容易被服務(wù)器誤認(rèn)為 是DDOS(分布式拒絕服務(wù)攻擊)而拒絕服務(wù)。獲取P2P視頻系統(tǒng)節(jié)目信息的還有一種方法 就是以偽P2P播放客戶端的形式,加入到P2P視頻網(wǎng)絡(luò),向服務(wù)器注冊(cè)并獲得節(jié)目信息,但 這種方式對(duì)于加密的通信協(xié)議或是需要認(rèn)證的P2P播放客戶端是行不通的,而本發(fā)明直接 對(duì)網(wǎng)卡操作,對(duì)通信數(shù)據(jù)進(jìn)行分析,可以有效的避免對(duì)服務(wù)器的認(rèn)證這一問題。
圖1是本發(fā)明一種獲取P2P視頻系統(tǒng)節(jié)目信息的方法的網(wǎng)絡(luò)接入圖。
圖2是本發(fā)明圖一種獲取P2P視頻系統(tǒng)節(jié)目信息的方法的整體結(jié)構(gòu)圖。
圖3是本發(fā)明中初始化模塊的結(jié)構(gòu)圖。 圖4是本發(fā)明中P2P視頻客戶端播放器與服務(wù)器的交互通信過程。 圖5是本發(fā)明中數(shù)據(jù)捕獲模塊的功能結(jié)構(gòu)圖。 圖6是本發(fā)明中數(shù)據(jù)捕獲模塊在捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)的流程。 圖7是本發(fā)明中URL過濾與文件解析模塊功能結(jié)構(gòu)圖。 實(shí)施方式 本發(fā)明的目的在于,將基于P2P技術(shù)的網(wǎng)絡(luò)視頻發(fā)布系統(tǒng)中所有的用于發(fā)布的各 類視頻節(jié)目信息全部搜索并采集到,為實(shí)現(xiàn)P2P網(wǎng)絡(luò)視頻系統(tǒng)的節(jié)目監(jiān)管提供技術(shù)支持, 以保障互聯(lián)網(wǎng)的安全和秩序。 —種獲取P2P視頻系統(tǒng)節(jié)目信息的方法,用一個(gè)同步的數(shù)據(jù)包攔截器與P2P視頻 客戶端播放器并行運(yùn)行,攔截器監(jiān)視網(wǎng)卡并在網(wǎng)絡(luò)層上捕獲所有經(jīng)由P2P視頻服務(wù)器流向 P2P視頻客戶端播放器的數(shù)據(jù),再對(duì)這些數(shù)據(jù)進(jìn)行協(xié)議還原和過濾分析,從中抽取出P2P視 頻客戶端播放器向P2P視頻服務(wù)器發(fā)送的與P2P視頻節(jié)目信息有關(guān)的URL請(qǐng)求信息,下載 這些URL請(qǐng)求所對(duì)應(yīng)的文件并解析文件內(nèi)容,就可以得到P2P視頻系統(tǒng)的節(jié)目信息。
圖1所示的就是本發(fā)明網(wǎng)絡(luò)接入圖,P2P視頻客戶端系統(tǒng)與網(wǎng)絡(luò)中選定的某一視 頻服務(wù)器連接,當(dāng)P2P視頻客戶端與P2P視頻服務(wù)器進(jìn)行通信時(shí),通信數(shù)據(jù)包流經(jīng)網(wǎng)卡,所 有的數(shù)據(jù)都將被P2P視頻客戶端所安裝的同步的數(shù)據(jù)包攔截器所捕獲。
本發(fā)明的整體結(jié)構(gòu)由三個(gè)處理模塊構(gòu)成,分別為初始化模塊、數(shù)據(jù)捕獲模塊、文件 下載與解析模塊,它們之間的關(guān)系及整體結(jié)構(gòu)如圖2所示 在圖2所示的整體結(jié)構(gòu)中,主要由三個(gè)基本處理模塊組成,它們構(gòu)成了本發(fā)明的 基本特征,在具體的工作過程中,它們依次含有以下處理步驟
步驟1 :初始化 在所述的數(shù)據(jù)捕獲模塊工作之前需要完成以下初始化工作,本發(fā)明的初始化工作 主要由初始化模塊完成,此模塊的功能及基本處理流程如圖3所示。
初始化模塊依次按如下步驟完成初始化工作。 St印l :P2P視頻節(jié)目信息采集系統(tǒng)的初始化模塊啟動(dòng)運(yùn)行,首先判斷是否存在定 義的初始化文件,如果存在,則直接讀取初始化文件內(nèi)容,否則,按如下的規(guī)定輸入相關(guān)參 數(shù) (1)確定要捕獲的P2P視頻系統(tǒng),也就是說要對(duì)哪一個(gè)P2P視頻系統(tǒng)的節(jié)目信息進(jìn)行采集,用一個(gè)唯一的ID來表示。
(2)確定(1)中的ID的客戶端播放器軟件在主機(jī)上的安裝路徑,定義為Path,此 路徑指的是P2P視頻客戶端播放器軟件安裝在主機(jī)上的位置信息,用Path來表示。
(3)確定(1)中的ID所對(duì)應(yīng)的數(shù)據(jù)包解析方法,定義為Parser,因?yàn)椴煌腜2P視 頻系統(tǒng)其通信數(shù)據(jù)包的類型、格式、特征均不相同,需要不同的方法進(jìn)行解析,每一個(gè)ID都 對(duì)應(yīng)一個(gè)Parser方法。 St印2 :將(1) 、 (2) 、 (3)所描述的三個(gè)字段信息寫入一個(gè)初始化文件,這樣,每 一個(gè)P2P視頻系統(tǒng)就對(duì)應(yīng)一個(gè)唯一的ID、一個(gè)客戶端播放器軟件在本地的安裝路徑信息 Path、一個(gè)針對(duì)此P2P視頻系統(tǒng)的數(shù)據(jù)包解析方法Parser,這三個(gè)字段信息組成一條數(shù)據(jù) 信息。在同一個(gè)初始化文件中可以寫入一條以上的信息。 St印3 :讀取初始化文件內(nèi)容,根據(jù)Path參數(shù)啟動(dòng)P2P視頻客戶端播放器運(yùn)行,同 時(shí)啟動(dòng)數(shù)據(jù)捕獲模塊運(yùn)行,并將ID、 Parser作為參數(shù)傳入。
步驟2:捕獲網(wǎng)絡(luò)數(shù)據(jù)包 網(wǎng)絡(luò)數(shù)據(jù)包的捕獲由數(shù)據(jù)捕獲模塊完成,此模塊主要利用P2P視頻客戶端播放器 與P2P視頻服務(wù)器的通信規(guī)律及交互過程,攔截它們之間的通信數(shù)據(jù),再對(duì)通信數(shù)據(jù)進(jìn)行 過濾分析從中抽取出與P2P視頻節(jié)目信息有關(guān)的數(shù)據(jù)。 P2P視頻客戶端與P2P視頻服務(wù)器的初始交互通信過程如圖4所示。
根據(jù)圖4所示的通信過程,所述的數(shù)據(jù)捕獲模塊主要用來捕獲P2P視頻客戶端播 放器發(fā)向P2P視頻服務(wù)器的與更新或加載P2P視頻節(jié)目信息有關(guān)的URL請(qǐng)求信息。此模塊 與P2P視頻客戶端的播放器并行運(yùn)行,讀取初始化文件中的ID和Parser參數(shù)作為輸入,將 捕獲到的由P2P視頻客戶端播放器發(fā)向P2P視頻服務(wù)器的URL請(qǐng)求及輸入信息作為輸出, 依次設(shè)有 數(shù)據(jù)包攔截子模塊,數(shù)據(jù)包過濾子模塊及協(xié)議還原子模塊,這些子模塊集中完成 數(shù)據(jù)捕獲模塊的任務(wù),此模塊的功能結(jié)構(gòu)圖如圖5所示。
以上所述這些模塊中
步驟2. l攔截網(wǎng)卡數(shù)據(jù) 數(shù)據(jù)包攔截子模塊,讀取初始化文件,啟動(dòng)P2P視頻客戶端播放器,并與播放器同 步運(yùn)行,以捕獲流經(jīng)網(wǎng)卡的所有數(shù)據(jù),同時(shí),將捕獲到的網(wǎng)絡(luò)數(shù)據(jù)包交給數(shù)據(jù)包過濾子模塊 處理。
數(shù)據(jù)包攔截子模塊在攔截網(wǎng)卡數(shù)據(jù)的過程中,具體按如下步驟處理 St印l :數(shù)據(jù)包攔截子模塊啟動(dòng)運(yùn)行,接收由初始化模塊傳入的ID和Parser等參
數(shù)信息。 St印2 :在St印l執(zhí)行的同時(shí),初始化模塊也啟動(dòng)了 P2P視頻客戶端播放器系統(tǒng)運(yùn)
行,二者同步并行運(yùn)行,數(shù)據(jù)捕獲模塊作為一個(gè)并行的監(jiān)聽程序,以旁路監(jiān)聽的方式,監(jiān)聽
網(wǎng)卡動(dòng)作并捕獲流經(jīng)網(wǎng)卡的所有數(shù)據(jù)包。 利用Jpc即捕獲網(wǎng)絡(luò)數(shù)據(jù)包的流程圖如圖6所示 根據(jù)圖6所示的流程,其執(zhí)行步驟依次如下 (1)獲得網(wǎng)卡適配器列表, (2)獲得系統(tǒng)中網(wǎng)絡(luò)適配器的名字,
10
(3)從適配器列表中選擇一個(gè)默認(rèn)的0號(hào)適配器,
(4)將所選擇的適配器人工設(shè)置為混雜模式, (5)設(shè)置包過濾的過濾器的參數(shù),初始化接收數(shù)據(jù)包的程序結(jié)構(gòu),以完成對(duì)于原始數(shù)據(jù)包的初始的過濾處理,如根據(jù)其中端口號(hào)、IP地址進(jìn)行過濾等,
(6)設(shè)置緩沖區(qū), (7)分配一個(gè)數(shù)據(jù)包對(duì)象并連接已分配的緩沖, (8)捕獲多個(gè)數(shù)據(jù)包,從網(wǎng)卡適配器接收數(shù)據(jù)包并將數(shù)據(jù)包放入指定的數(shù)據(jù)緩沖區(qū)中,若接收成功返回TRUE,否則返回FALSE, (9)通過觸發(fā)回調(diào)函數(shù)把捕獲符合過濾器規(guī)則的數(shù)據(jù)包轉(zhuǎn)發(fā)給數(shù)據(jù)包過濾子模塊進(jìn)行處理, (10)接收數(shù)據(jù)包的過程結(jié)束并釋放數(shù)據(jù)包對(duì)象,
(11)關(guān)閉網(wǎng)卡設(shè)備并將網(wǎng)卡恢復(fù)到正常接收狀態(tài)。
步驟2. 2:網(wǎng)卡數(shù)據(jù)過濾 數(shù)據(jù)包過濾子模塊接收到數(shù)據(jù)包攔截子模塊攔截到的網(wǎng)卡數(shù)據(jù)后,即對(duì)攔截到的數(shù)據(jù)包進(jìn)行過濾處理,過濾出由P2P視頻客戶端播放器發(fā)向P2P視頻服務(wù)器的TCP數(shù)據(jù)包。
數(shù)據(jù)包過濾子模塊依次按以下步驟進(jìn)行數(shù)據(jù)包內(nèi)容過濾 St印l :數(shù)據(jù)包攔截子模塊在攔截到流經(jīng)網(wǎng)卡的所有數(shù)據(jù)包后,將所有的數(shù)據(jù)存儲(chǔ)在一個(gè)隊(duì)列里,然后根據(jù)源IP地址,目的IP地址,源端口,目的端口,協(xié)議類型等,對(duì)需要進(jìn)行內(nèi)容過濾的數(shù)據(jù)包,發(fā)送到數(shù)據(jù)包過濾子模塊進(jìn)行處理; St印2 :數(shù)據(jù)包過濾子模塊在收到需要進(jìn)行內(nèi)容過濾的數(shù)據(jù)包后,按如下步驟對(duì)數(shù)據(jù)包內(nèi)容進(jìn)行過濾 (1)如果數(shù)據(jù)包隊(duì)列不為空,從隊(duì)列中取出一個(gè)數(shù)據(jù)包, (2)判斷數(shù)據(jù)包的類型,如果不是基于TCP協(xié)議的數(shù)據(jù)包則丟棄, (3)判斷此TCP數(shù)據(jù)包的源IP、目的IP,如果是由P2P視頻客戶端播放器發(fā)向P2P
視頻服務(wù)器的數(shù)據(jù)包則繼續(xù)處理,否則丟棄。 (4)處理所有的由P2P視頻客戶端播放器發(fā)向P2P視頻服務(wù)器的數(shù)據(jù)包,直到數(shù)據(jù)包隊(duì)列為空。 經(jīng)過數(shù)據(jù)包過濾子模塊過濾后,只有一類數(shù)據(jù)包可以留下,這類數(shù)據(jù)包就是由P2P視頻客戶端播放器發(fā)向P2P視頻服務(wù)器的、基于TCP協(xié)議的數(shù)據(jù)包。針對(duì)這些數(shù)據(jù)包,調(diào)用協(xié)議還原子模塊對(duì)其進(jìn)行協(xié)議還原。
步驟2.3:協(xié)議還原 經(jīng)過數(shù)據(jù)包過濾子模塊處理后,所得到的數(shù)據(jù)包都是由P2P視頻客戶端播放器發(fā)向P2P視頻服務(wù)器的基于TCP協(xié)議的數(shù)據(jù)包。協(xié)議還原子模塊將對(duì)這些數(shù)據(jù)包進(jìn)行協(xié)議還原,以還原出原始的P2P視頻客戶端播放器發(fā)向P2P視頻服務(wù)器的請(qǐng)求數(shù)據(jù)信息。
St印l :協(xié)議還原子模塊在接收到來自數(shù)據(jù)包過濾子模塊傳送過來的TCP數(shù)據(jù)包以后,對(duì)數(shù)據(jù)包信息依次按如下步驟進(jìn)行協(xié)議還原。 (l)TCP數(shù)據(jù)包是傳輸層數(shù)據(jù),一條TCP數(shù)據(jù)包含了 TCP首部和TCP報(bào)文段的數(shù)據(jù)部分,將這兩部分?jǐn)?shù)據(jù)分離開來,分別存儲(chǔ)到相應(yīng)的數(shù)據(jù)結(jié)構(gòu)中, (2)讀取TCP報(bào)文段中的數(shù)據(jù)部分,此數(shù)據(jù)部分包含應(yīng)用層協(xié)議信息,此應(yīng)用層協(xié)議就是HTTP協(xié)議,再要對(duì)HTTP協(xié)議進(jìn)行應(yīng)用層的協(xié)議還原, (3)依次按如下步驟對(duì)應(yīng)用層的HTTP協(xié)議進(jìn)行還原,還原出由P2P視頻客戶端播放器發(fā)向P2P視頻服務(wù)器的URL(統(tǒng)一資源定位符)請(qǐng)求信息, ①根據(jù)HTTP協(xié)議的規(guī)定,將每個(gè)無序的,不完整的數(shù)據(jù)包分片,組織成完整的,有序的一系列數(shù)據(jù),并去除協(xié)商、應(yīng)答、重傳、包頭等網(wǎng)絡(luò)信息,以獲取一條基于完整會(huì)話的記錄,此記錄就是一條資源統(tǒng)一定位地址URL請(qǐng)求信息,也叫URL鏈接, ②一個(gè)HTTP請(qǐng)求報(bào)文由請(qǐng)求行(request line)、請(qǐng)求頭部(header)、空行和請(qǐng)求數(shù)據(jù)組成,從TCP報(bào)文段的數(shù)據(jù)部分分別抽取這些信息。 ③根據(jù)客戶端發(fā)向服務(wù)端的請(qǐng)求信息和服務(wù)端對(duì)客戶端的應(yīng)答狀態(tài)代碼來判斷
是否是一個(gè)完整的請(qǐng)求,同時(shí)獲取URL,方法如下 根據(jù)"Host :"來獲取域名、主機(jī)地址等信息; 根據(jù)"GET"方法獲取請(qǐng)求的方式及請(qǐng)求文件的路徑; 根據(jù)"Content-Type :"來判斷文件類型; 根據(jù)"Content-Encoding :"來判斷文件內(nèi)容的編碼方式; 通過http: 〃+host+GET (文件路徑)的組合進(jìn)行URL還原,就可以組合成一個(gè)由P2P客戶端發(fā)向P2P視頻服務(wù)器的請(qǐng)求的URL,同時(shí)也可以判斷此URL請(qǐng)求的文件類型、文件編碼方式等。 St印2 :還原出URL后,數(shù)據(jù)捕獲模塊處理結(jié)束,將此URL信息,連同讀取初始化文件得到的ID和Parser信息作為輸出, 一并傳給文件下載及解析模塊進(jìn)行處理。
步驟3 :文件下載及解析 數(shù)據(jù)捕獲模塊所捕獲到的URL鏈接,是一個(gè)由P2P視頻客戶端播放器發(fā)向P2P視頻服務(wù)器并指向P2P視頻服務(wù)器的、包含視頻節(jié)目信息的文件路徑信息,將此URL所指向的文件下載到本地并進(jìn)行解析,就可以獲取其中的描述P2P視頻節(jié)目的數(shù)據(jù)信息。
在所述的文件下載及解析模塊中,依次包含URL過濾及下載子模塊和文件解析子模塊,接收由數(shù)據(jù)捕獲模塊傳入的URL、 ID和Parser信息,首先將URL過濾后將URL所指向的節(jié)目文件下載到本地,再根據(jù)Parser信息調(diào)用相應(yīng)的解析方法對(duì)節(jié)目文件進(jìn)行解析,最后將解析得到的P2P視頻節(jié)目信息和ID信息一并輸出。此模塊的功能結(jié)構(gòu)圖如圖7所示。
步驟3. 1 :URL的過濾與下載 從數(shù)據(jù)捕獲模塊處得到的URL信息,包含了 P2P視頻客戶端播放器發(fā)向P2P視頻服務(wù)器的所有的請(qǐng)求,而與P2P視頻節(jié)目信息有關(guān)的請(qǐng)求,存在于兩類文件里, 一類是文本文件,另一類是壓縮包文件,URL的過濾與下載模塊,就是先將這兩類文件過濾出來,再將其下載到本地; URL的過濾與下載,依次按如下步驟執(zhí)行 St印l :初始化操作,定義兩個(gè)結(jié)構(gòu),一個(gè)是表示文本文件的擴(kuò)展名集合,另一個(gè)是表示壓縮文件的擴(kuò)展名集合,例如定義textFile = {. xml,. txt,. html,. ini,. js,. txt},表示文本文件的擴(kuò)展名集合,zipFile = {. zip, . rar, . gzip, . gz}表示壓縮文件的擴(kuò)展名
隹A朱n o St印2 :將所有還原出的URL放到一個(gè)列表里,執(zhí)行St印3 ; St印3 :讀出列表里的URL信息,依次判斷的每一個(gè)URL請(qǐng)求,執(zhí)行St印4 ;
St印4 :判斷URL請(qǐng)求信息所表征的文件類型,是否包含于textFile集合,如果不包含則執(zhí)行St印5,否則執(zhí)行St印6 ; St印5 :判斷URL請(qǐng)求信息所表征的文件類型,是否包含于zipFile集合,如果不包含則執(zhí)行St印8,否則執(zhí)行St印6 ; St印6 :根據(jù)URL信息讀取此URL所定位的文件內(nèi)容,如果內(nèi)容可讀且不報(bào)任何讀寫錯(cuò)誤,執(zhí)行St印7,否則執(zhí)行St印8。 St印7 :讀取文件,如果此文件是壓縮文件格式則執(zhí)行St印9,否則執(zhí)行St印lO
St印8 :如果列表不為空,則取出下一個(gè)URL,執(zhí)行St印4,否則執(zhí)行St印ll ;
St印9 :下載此壓縮文件包,調(diào)用解壓縮程序,將壓縮包文件解壓后輸出。執(zhí)行St印ll St印lO :根據(jù)URL信息,讀取文件流,并將其下載保存到本地。執(zhí)行St印ll
St印ll :URL過濾及文件下載結(jié)束,調(diào)用文件解析子模塊對(duì)下載的包含P2P視頻節(jié)目信息的文件內(nèi)容進(jìn)行解析。
步驟3.2:文件解析 通過URL過濾及下載子模塊下載得到的文件,是P2P視頻客戶端播放器向P2P視頻服務(wù)器發(fā)送與更新或加載P2P視頻節(jié)目列表有關(guān)的URL請(qǐng)求所得到的文件,這些文件中包含著P2P視頻服務(wù)器返回給P2P視頻客戶端播放器的P2P視頻節(jié)目信息,解析這些文件就能從中抽取出P2P視頻節(jié)目信息。
依次按如下步驟解析文件 St印l :根據(jù)下載的文件內(nèi)容的格式、特征、編碼方式等,編寫相應(yīng)的解析算法,所有的解析方式都?xì)w根于對(duì)文本文件的解析; St印2 :逐行掃描文件內(nèi)容,從中提取出與P2P視頻節(jié)目信息有關(guān)的數(shù)據(jù)。如節(jié)目名稱、播放鏈接、播放時(shí)間、視頻節(jié)目來源等; St印3 :將編寫好的解析方法在程序開始運(yùn)行之前,也就是在初始化模塊中寫入到初始化配置文件中,每一個(gè)(或一類)P2P視頻系統(tǒng)對(duì)應(yīng)著一個(gè)解析此視頻節(jié)目信息文件的方法,即每一個(gè)P2P視頻系統(tǒng)的標(biāo)識(shí)ID對(duì)應(yīng)一個(gè)解析此ID的視頻節(jié)目信息的Parser方法; St印4 :文件解析子模塊讀取由數(shù)據(jù)捕獲模塊傳過來的ID和Parser信息; St印5 :根據(jù)ID信息確定要解析哪一個(gè)P2P視頻系統(tǒng),根據(jù)Parser信息調(diào)用相應(yīng)
的解析方法; St印6 :解析文件內(nèi)容,抽取所需的視頻節(jié)目信息,連同P2P視頻系統(tǒng)的ID信息一同輸出; St印7 :每一個(gè)ID就對(duì)應(yīng)著一組節(jié)目信息,節(jié)目信息就是所有獲取的P2P視頻節(jié)目信息。 文件內(nèi)容解析完成,所選定的P2P視頻系統(tǒng)的視頻節(jié)目信息也就得到了。
1權(quán)利要求
一種獲取P2P視頻系統(tǒng)節(jié)目信息的方法,其特征在于,所述方法是在一個(gè)由P2P視頻服務(wù)器和各P2P視頻客戶端組成的P2P視頻網(wǎng)絡(luò)中依次按以下步驟實(shí)現(xiàn)的步驟(1),選擇一個(gè)P2P視頻客戶端,所述的P2P視頻客戶端是指在安裝了P2P視頻客戶端播放器軟件的主機(jī)上同時(shí)安裝一個(gè)同步運(yùn)行的數(shù)據(jù)包攔截器所組成的一個(gè)可以播放來自P2P視頻服務(wù)器的視頻節(jié)目的客戶端系統(tǒng),所述數(shù)據(jù)包攔截器是一個(gè)P2P視頻節(jié)目信息采集模塊,其中安裝了依次相互串接的初始化模塊、數(shù)據(jù)捕獲模塊,以及文件下載與解析模塊,其中,初始化模塊依次執(zhí)行以下步驟步驟(A-1)在初始化程序啟動(dòng)后,判斷是否存在一個(gè)初始化文件,該初始化文件含有以下參數(shù)確定要捕獲的P2P視頻系統(tǒng),用一個(gè)ID唯一地表示,以便由此確定要采集哪一個(gè)P2P視頻系統(tǒng)的節(jié)目信息,所述ID的安裝路徑Path,是指所述P2P視頻系統(tǒng)的客戶端播放器在所述的初始化模塊運(yùn)行的主機(jī)上的軟件安裝位置信息,所述ID所對(duì)應(yīng)的數(shù)據(jù)包解析方法,定義為Parser,若不存在所述的初始化文件,則輸入一個(gè)初始化文件,轉(zhuǎn)入步驟(A-2),若存在所述的初始化文件,則轉(zhuǎn)入步驟(A-2),步驟(A-2)輸出所述的初始化文件;數(shù)據(jù)捕獲模塊依次執(zhí)行以下步驟步驟(B-1),讀取所述的初始化文件,步驟(B-2),啟動(dòng)所述P2P視頻客戶端播放器并與所述的數(shù)據(jù)捕獲模塊同步運(yùn)行,步驟(B-3),在所述P2P視頻客戶端與P2P視頻播放器的通信過程中,攔截其中由所述P2P視頻客戶端播放器向P2P視頻服務(wù)器發(fā)出的通信數(shù)據(jù),其步驟如下步驟(B-3-1),獲得所述的P2P視頻客戶端播放器所在主機(jī)的網(wǎng)絡(luò)適配器列表,得到網(wǎng)絡(luò)適配器的名字,所述網(wǎng)絡(luò)適配器又稱網(wǎng)卡或網(wǎng)絡(luò)接口卡,是一種用來將用戶要傳遞的數(shù)據(jù)轉(zhuǎn)換為網(wǎng)絡(luò)上其它設(shè)備能夠識(shí)別的格式的硬件設(shè)備,步驟(B-3-2),從所述網(wǎng)絡(luò)適配器列表中選擇一個(gè)默認(rèn)為0號(hào)的網(wǎng)卡,并手動(dòng)設(shè)置為混雜模式,所述網(wǎng)卡的混雜模式是指在此模式下網(wǎng)卡會(huì)接收所有經(jīng)過網(wǎng)卡的數(shù)據(jù)包,步驟(B-3-3),初始化接收數(shù)據(jù)包的程序,至少把其中的端口號(hào)、IP地址設(shè)置為所述P2P視頻服務(wù)器的端口和IP,完成對(duì)原始數(shù)據(jù)包的過濾,捕獲數(shù)據(jù)包送入到指定的數(shù)據(jù)緩沖區(qū)中,步驟(B-3-4),按步驟(B-3-3)所述的方法捕獲多個(gè)數(shù)據(jù)包,分配到各個(gè)制定的緩沖區(qū)中,步驟(B-3-5),判斷是否達(dá)到所需要接收的數(shù)據(jù)包數(shù)目,若尚未達(dá)到,繼續(xù)執(zhí)行步驟(B-3-4),否則停止接收,執(zhí)行步驟(B-3-6),步驟(B-3-6),把所述網(wǎng)卡從混雜模式置回正常接收模式,執(zhí)行清理操作,復(fù)原現(xiàn)場(chǎng),步驟(B-4),依次按以下步驟對(duì)步驟(B-3-5)攔截到的數(shù)據(jù)包進(jìn)行處理,過濾出由所述P2P視頻客戶端播放器發(fā)向所述P2P視頻服務(wù)器的傳輸控制協(xié)議TCP數(shù)據(jù)包步驟(B-4-1),若所述數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)包隊(duì)列不為空,則從隊(duì)列中任意取出一個(gè)數(shù)據(jù)包,步驟(B-4-2),判斷步驟(B-4-1)中任意取得的一個(gè)數(shù)據(jù)包的類型,在丟棄非TCP協(xié)議類型的數(shù)據(jù)報(bào)后,執(zhí)行步驟(B-4-3),步驟(B-4-3),判斷此TCP數(shù)據(jù)包的源IP地址,若不是所述P2P視頻客戶端播放器發(fā)向P2P視頻服務(wù)器的數(shù)據(jù)包,則丟棄,若是,則執(zhí)行步驟(B-4-4),步驟(B-4-4),重復(fù)步驟(B-4-1)至步驟(B-4-4),直到所述數(shù)據(jù)包隊(duì)列為空,步驟(B-5),依次按以下步驟,從步驟(B-4-4)中得到的數(shù)據(jù)包中還原出原始的由所述P2P視頻客戶端播放器發(fā)向所述P2P視頻服務(wù)器的資源統(tǒng)一定位地址URL請(qǐng)求信息,步驟(B-5-1),從所述TCP數(shù)據(jù)包中分離出TCP首部和TCP報(bào)文段,分別存儲(chǔ)到對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)區(qū)域中,步驟(B-5-2),讀取所述TCP報(bào)文段中的超文本傳輸協(xié)議HTTP,步驟(B-5-3),依次按以下步驟對(duì)所述HTTP協(xié)議進(jìn)行還原,得到由所述P2P視頻客戶端播放器向所述P2P視頻服務(wù)器發(fā)出的資源統(tǒng)一定位地址URL請(qǐng)求信息,步驟(B-5-3-1),從所述超文本傳輸協(xié)議HTTP請(qǐng)求報(bào)文中抽取請(qǐng)求行、請(qǐng)求頭部、空行和請(qǐng)求數(shù)據(jù),步驟(B-5-3-2),根據(jù)P2P視頻客戶端播放器發(fā)向P2P視頻服務(wù)器的HTTP請(qǐng)求的內(nèi)容及P2P視頻服務(wù)端的應(yīng)答狀態(tài)碼,來判斷是否是一個(gè)完整的請(qǐng)求/應(yīng)答過程,步驟(B-5-3-2-1),所述HTTP請(qǐng)求的內(nèi)容格式為GET/HTTP/1.1Accept*/*Accept-Languagezh-cnAccept-Encodinggzip,deflateHost其中,GET/HTTP/1.1是請(qǐng)求行,包含了請(qǐng)求的方式、請(qǐng)求文件所在的路徑等信息,Accept指客戶端能接受的文件格式,以便根據(jù)它判斷并返回適當(dāng)?shù)奈募袷?,Accept-Language指出客戶端能接受的語言種類,其中包括中文簡(jiǎn)體zh-cn,Accept-Encoding指客戶端能接受的編碼方式,Host對(duì)應(yīng)網(wǎng)址URL中的Web名稱和端口號(hào),步驟(B-5-3-2-2),所述P2P視頻服務(wù)器端的應(yīng)答狀態(tài)代碼的格式為HTTP/1.1 200 OK,Content-Typetext/html;charset=UTF-8,其中,HTTP/1.1 200 OK表示服務(wù)端應(yīng)答狀態(tài)代碼為200,說明找到資源,并且一切正常,Content-Type指定了返回的文件類型和編碼,步驟(B-5-3-3),根據(jù)步驟(B-5-3-2-1)的P2P視頻客戶端播放器的請(qǐng)求內(nèi)容和步驟(B-5-3-2-2)的P2P視頻服務(wù)器的應(yīng)答狀態(tài)代碼,分別讀取其中的HTTP協(xié)議信息、Host主機(jī)信息和GET請(qǐng)求及路徑信息,再通過http://+host+文件路徑GET的組合,進(jìn)行URL還原,組成一個(gè)由所述P2P視頻客戶端播放器向P2P視頻服務(wù)器發(fā)出的資源統(tǒng)一定位地址URL請(qǐng)求信息,文件下載及解析模塊,依次按以下步驟獲取P2P視頻節(jié)目的數(shù)據(jù)信息,步驟(C-1),從所述數(shù)據(jù)捕獲模塊輸入所述資源統(tǒng)一定位地址URL請(qǐng)求信息、ID和數(shù)據(jù)包解析方法Parser信息,步驟(C-2),按以下步驟進(jìn)行所述資源統(tǒng)一定位地址URL請(qǐng)求信息的過濾與下載,步驟(C-2-1),定義一個(gè)文本文件的擴(kuò)展名集合或一個(gè)壓縮包文件的擴(kuò)展名集合,所述文本文件或壓縮包文件中含有視頻節(jié)目的有關(guān)信息,包含在所述資源統(tǒng)一定位地址URL請(qǐng)求信息中,步驟(C-2-2),把所有還原出的資源統(tǒng)一定位地址URL請(qǐng)求信息送入一個(gè)列表中,步驟(C-2-3),讀出所述列表中的資源統(tǒng)一定位地址URL請(qǐng)求信息,并按以下步驟依次判斷每一個(gè)請(qǐng)求步驟(C-2-3-1),根據(jù)所述文件類型,確定所述文件屬于所述文本文件的擴(kuò)展名集合還是屬于壓縮文件的擴(kuò)展名集合,若屬于文本文件的擴(kuò)展名集合,則讀取文件內(nèi)容執(zhí)行步驟(C-2-3-2),若屬于壓縮文件的擴(kuò)展名集合,則讀取文件內(nèi)容執(zhí)行步驟(C-2-3-3)步驟(C-2-3-2),下載文本文件執(zhí)行步驟(C-2-3-4),步驟(C-2-3-3),下載壓縮包文件,調(diào)用解壓縮程序,把壓縮文件解壓后輸出,執(zhí)行步驟(C-2-3-4),步驟(C-2-3-4),把讀取得到的文件流下載到本地保存;步驟(C-3),依次按以下步驟解析步驟(C-2-3-4)中得到的文件步驟(C-3-1),讀取由所述數(shù)據(jù)捕獲模塊傳來的ID和解析方法Parser信息,步驟(C-3-2),根據(jù)ID信息確定要解析的P2P視頻系統(tǒng),根據(jù)所述解析方法Parser信息調(diào)用相應(yīng)的解析方法,步驟(C-3-3),解析文件內(nèi)容,抽取所需的視頻節(jié)目的信息,連同所述的ID信息一起輸出;步驟(2),依次按以下步驟獲取P2P視頻節(jié)目信息,步驟(2.1),生成所述初始化文件,步驟(2.2),啟動(dòng)裝載有P2P視頻節(jié)目信息采集系統(tǒng)的P2P視頻客戶端播放器以及所述的數(shù)據(jù)捕獲模塊,步驟(2.3),捕獲由所述P2P視頻客戶端播放器發(fā)向P2P視頻服務(wù)器的數(shù)據(jù)包數(shù)據(jù),步驟(2.4),從步驟(2.3)中得到的數(shù)據(jù)包數(shù)據(jù)中還原出由所述P2P視頻客戶端播放器發(fā)向所述P2P視頻服務(wù)器的資源統(tǒng)一定位地址URL請(qǐng)求信息,其中,所述的資源統(tǒng)一定位地址URL請(qǐng)求信息所指向的文本文件或壓縮包文件中已包含了P2P視頻節(jié)目信息,步驟(2.5),過濾并下載所述URL請(qǐng)求信息所指向的文件,步驟(2.6),解析所述下載得到的文件內(nèi)容,輸出所選定的P2P視頻系統(tǒng)的視頻節(jié)目信息。
全文摘要
一種獲取P2P視頻系統(tǒng)節(jié)目信息的方法,屬于P2P網(wǎng)絡(luò)監(jiān)控領(lǐng)域,其特征在于,用一個(gè)選擇性的安裝在P2P視頻客戶端播放器所在主機(jī)上的P2P視頻節(jié)目信息采集模塊來捕獲、過濾出該P(yáng)2P視頻客戶端播放器與P2P視頻服務(wù)器通信過程中由所述P2P視頻客戶端播放器向該P(yáng)2P視頻服務(wù)器發(fā)出的TCP數(shù)據(jù)包,提取超文本傳輸協(xié)議HTTP,并對(duì)HTTP協(xié)議進(jìn)行還原,形成資源統(tǒng)一定位地址URL請(qǐng)求信息并將此URL所指向的包含P2P視頻節(jié)目信息的文本文件下載到本地,再用預(yù)設(shè)的與每一個(gè)用ID標(biāo)識(shí)的P2P視頻系統(tǒng)相一一對(duì)應(yīng)解析方法解析出所述對(duì)應(yīng)文件中包含的P2P視頻節(jié)目信息。本發(fā)明具有對(duì)硬件要求低、與P2P視頻發(fā)布系統(tǒng)無關(guān)、實(shí)時(shí)性強(qiáng)、節(jié)目信息全面、詳細(xì)、完整和準(zhǔn)確的優(yōu)點(diǎn)。
文檔編號(hào)H04L29/06GK101729602SQ200910241878
公開日2010年6月9日 申請(qǐng)日期2009年12月11日 優(yōu)先權(quán)日2009年12月11日
發(fā)明者張奇, 張建標(biāo), 張涵, 朱通, 管磊, 趙旭強(qiáng) 申請(qǐng)人:北京工業(yè)大學(xué)