999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于HTTP報文網絡抓包軟件的分析與設計

2020-06-24 05:09:03謝劍
現代信息科技 2020年22期

摘? 要:網絡信息獲取在企業的決策制定中占據了重要的位置,結合“網絡爬蟲設計”課程內容,針對信息的自動抓取設計實現了一套基于HTTP報文交互的網絡抓包軟件。本軟件設計并實現了多線程網絡信息請求及解析、數據存儲、參數配置、日志記錄等功能,用于實時自動地獲取特定網絡信息并進行解析提取以及存儲,以便后續統計分析。該軟件抓住企業需求,具有較好的實用性。

關鍵詞:網絡信息;抓取解析;自動實時;實用性;抓包軟件

中圖分類號:TP391;TP311.5? ? ? ?文獻標識碼:A 文章編號:2096-4706(2020)22-0020-03

Analysis and Design of Network Packet Capture Software Based on HTTP Message

XIE Jian

(Hunan College of Information,Changsha? 410200,China)

Abstract:Network information acquisition occupies an important position in the decision-making of enterprises. Combined with the content of the “Web Crawler Design” course,a set of network packet capture software based on HTTP message interaction is implemented for the design of automatic information capture. The software design and implementation of multithreading network information request and parsing,data storage,parameter configuration,log recording and other functions,which are used to automatically obtain specific network information in real time,extract and store it for subsequent statistical analysis. The software has good practicability by grasping the needs of enterprises.

Keywords:network information;grab and parsing;automatic and real-time;practicality;packet capture software

0? 引? 言

企業經營決策的制定離不開有效信息的支撐,特別是互聯網時代的網絡信息,信息量大、更新速度快,若仍采用人工方式收集,不僅需要花費較高的人力成本,而且還不能保證信息能夠實時收集、實時上報,從而影響到企業運營策略的及時修正,進而影響到企業效益,這種情形在以賺取中間差價為盈利點的行業企業中尤為突出。軟件通過程序方式自動抓取、解析指定網站數據并保存到數據庫,從而取代傳統的人工收集保存方式,在降低成本、提高效率的同時,也保證了數據的時效性。

本軟件是筆者針對學校的專業課程“網絡爬蟲設計”而設計的一個案例,通過此案例的分析與設計,使學生加深對相關知識點的理解與應用。

1? 系統需求分析與設計

1.1? 系統需求分析

此系統的使用對象是企業員工。主要涉及的模塊有網絡請求模塊、多線程處理模塊、數據庫訪問模塊、配置模塊以及日志模塊。網絡請求模塊用于向指定的網站發送網絡請求,并對返回的數據進行解析,提取出需要的數據,為提高效率應采用多線程處理,可同時發起多個請求。數據庫訪問模塊采用數據庫連接池的方式實現,將解析出的數據入庫保存,以便后續進行統計分析,指導決策。配置模塊能夠對連接的數據庫信息、需要請求的網站、日志的級別、線程的數量等進行配置,程序根據配置的信息進行抓包及保存處理。日志模塊主要用于記錄網絡交互過程、數據庫操作等關鍵環節的日志信息,以便出現問題時能及時查找并解決。

1.2? 開發環境及關鍵技術

該軟件是基于Widows 10系統,采用C++語言來實現的一個抓包軟件。

數據存儲采用MySQL數據庫,MySQL數據庫是當前最流行的關系型數據庫之一。與其他數據庫將數據存放在一個大倉庫內的存儲方式不同,MySQL數據庫將數據存儲在不同的表結構中,以此加快訪問速度,提高數據訪問的靈活性。同時MySQL數據庫也是支持處理千萬級數據記錄的大型數據庫,而且是開源的軟件,不需要收取版權費用,因此本軟件采用MySQL數據庫來存儲和管理數據。

軟件的開發語言選取的是C++,開發工具采用Visual Studio,Visual Studio是目前流行的Windows平臺應用程序的集成開發環境,支持多種語言開發,使用起來方便快捷,可以有效提高開發效率。

軟件關鍵技術在于多線程HTTP報文請求的異步處理及數據保存,因此采用線程池、數據庫連接池、IO完成端口相結合的技術手段實現。線程池是指程序根據配置文件的配置,在啟動時就創建相對應的任務線程數,并保存到一個隊列結構中,當有HTTP請求交互時,從線程中取出一個任務線程進行任務處理,完成后再放進隊列中,這樣可避免頻繁的線程創建及釋放,提高性能。數據庫連接池同樣也是程序根據配置在啟動時就創建相應的數據庫連接對象,并將這些連接對象保存到隊列中,當需要進行數據保存時,從隊列中取出一個連接對象進行數據庫操作,完成后再放回隊列中,避免頻繁的創建及釋放數據庫連接對象,消耗資源。IO完成端口是一種網絡編程模型,是Windows平臺下最高效的處理網絡異步請求的方式,本軟件使用IO完成端口來實現網絡請求模塊中異步通信功能。

1.3? 系統詳細設計

1.3.1? 系統功能結構設計

軟件主要由5個功能模塊組成,功能結構圖如圖1所示,以下將從實現類圖的角度對各個模塊進行闡述說明。

(1)網絡請求模塊。該模塊主要用于進行HTTP請求的發送、接收以及數據的解析,其主要實現類圖如圖2所示。

Cookie類是用于保存網絡會話過程中服務器端生成的用來確定用戶身份及會話連續性的信息的類,一個Cookie對象只保存一個鍵值對數據。CookieCollection類是依賴Cookie類,用來保存并解析多個Cookie信息,并且對保存的數據可以進行增加或更新等操作,可隨時計算出當前獲取的Cookie數目并進行相關判斷。CookieHelper類依賴了上述兩個類,負責從網絡通信數據中截取出Cookie信息,生成對應的Cookie對象,并將新生成的對象放入到CookieCollection對象中,便于同一會話過程中的后續請求報文使用,保證服務器端的身份驗證可以通過。

WebResponse類是用于進行網絡報文交互的基類,該類封裝了報文交互相關的標準操作,可進行報文的發送和接收,并可獲取到接收報文中的長度、報文頭、報文體等相關內容。HttpWebResponse類繼承自基類WebResponse,主要進行超文本傳輸協議(Hypertext transfer protocol,HTTP)報文交互,是互聯網上一種主流的協議方式。該類提供一種無狀態的交互方式,可實現客戶端與服務器的數據、Office文檔、圖片、音頻、視頻等文件的交互功能。HttpWebResponseUtinity類則提供了HTTP協議定義的兩種請求方式:Post請求和Get請求。兩種請求在參數傳遞和報文數據上會有一定差異,不同服務器有不同要求。通過對抓取報文的分析,可用該類模擬發送不同請求方式的報文并對返回數據的提取和解析工作,提取出所需要的信息進行保存,不同網站具體實現不同。

(2)多線程處理模塊。該模塊用于提供并發執行網絡請求任務的能力,其實現類圖如圖3所示。

CThread類是基礎的線程類,該類用于在主程序中創建工作子線程,并可對正在執行的子線程執行暫停、恢復以及關閉操作。CThreadTask類依賴CThread類,該類對基礎類進行了封裝,用來記錄或獲取子線程的工作狀態(如運行、休眠等),并且與具體的網絡請求任務相關聯,當接收到任務請求時,就進行子線程的創建及相關初始化工作,并根據指令對線程的工作狀態進行修改。CThreadTaskProcess類用來管理CThreadTask類,該類中實現了對線程數目的動態管理,根據實際需要進行線程數目的增減,實現一個線程池的功能,有利于資源的利用。同時該類還實現了同步鎖,防止多個子線程在訪問同一資源時出現死鎖現象,提高了程序的穩定性,避免程序在出現此類問題時出現異常卡死的現象。

(3)數據庫訪問模塊。該模塊用于連接數據庫并進行數據庫相關操作,支持訪問MySQL數據庫,其實現類圖如圖4所示。

CDataBase類是數據庫的操作類,封裝了相關的系統API函數,直接與數據庫交互,負責相關初始化操作,并與具體的數據庫進行連接,執行SQL語句,獲得執行結果。CDBConncetPool類是數據庫連接池類,負責管理數據庫連接對象隊列,該類根據配置文件中的數據庫相關配置(如:數據庫地址、數據庫名、數據庫端口、數據庫用戶名及密碼等)在程序啟動時就創建好多個數據庫連接對象,在程序退出時才釋放這些連接資源。多線程情況下,每個線程只需要從該池中取出一個空閑的連接對象,當使用完時再把該連接對象放回隊列中,供其他線程使用。

(4)配置及日志模塊。配置模塊支持數據庫、訪問網站、日志級別、初始線程數等多種數據的文件配置,配置項格式為鍵值對的形式,鍵值改動后需要重啟程序才可生效。其實現類圖如圖5所示。

日志模塊用于記錄網絡交互及數據庫操的日志記錄,以便出現問題時進行問題的分析查找。日志類以天為記錄單位,跨天自動生成新文件,輸出的每行日志記錄時間精確到毫秒,同時會在每行頭部顯示該日志的級別,當配置為某一級別時,該級別及該級別以上日志會輸出,該級別以下的日志不會輸出。其實現類圖如圖6所示。

1.3.2? 系統數據庫設計

軟件主要功能是網絡信息的爬取及保存,不涉及其他業務需求,因此設計的數據庫表只有信息保存表,用于存儲抓取數據的相關信息,比如時間、信息類型、具體信息內容等。

2? 結? 論

本文詳細描述了網絡抓包軟件的需求,開發環境及技術的選取、功能的詳細設計與數據庫表的設計,并已根據設計完成實現。若實際投入使用,企業可以通過此軟件實現網絡信息的自動收集及保存,可提高企業員工的工作效率,節約企業的人力成本。案例應用在了“網絡爬蟲設計”的課程中,通過講解網絡抓包軟件的分析和設計過程,加深學生對知識點的理解及應用,同時提高學生系統分析與設計的能力。

參考文獻:

[1] 吳潔明,方英蘭.軟件工程實例教程 [M].北京:清華大學出版社,2010.

[2] 王英英.MySQL 8從入門到精通 [M].北京:清華大學出版社,2019.

[3] 彭云鵑.應用設計模式的校園停車位收費系統的設計與實現 [J].冶金管理,2019(23):79-81.

[4] 王佳珣.高校實驗室知識管理系統用戶需求分析與系統設計 [D].上海:華東理工大學,2013.

[5] 康昕宇,耿恒山,翟丹娜,等.基于Android的物流與財務管理系統的設計與實現 [J].計算機應用與軟件,2016,33(8):315-318.

作者簡介:謝劍(1987.06—),男,漢族,湖南長沙人,就職于軟件學院,教師,初級職稱,碩士,研究方向:計算機應用、圖像處理。

主站蜘蛛池模板: 国产91小视频在线观看| yjizz视频最新网站在线| 国产成人精品一区二区三在线观看| 国产成+人+综合+亚洲欧美| 国产性猛交XXXX免费看| 成人亚洲国产| 一级毛片高清| 国产免费羞羞视频| 国产午夜小视频| 国产激情在线视频| 国产午夜无码专区喷水| 亚洲精品中文字幕午夜| 91精品国产丝袜| 国产成人高清精品免费| 狠狠做深爱婷婷综合一区| 国产中文一区a级毛片视频| 青青草原国产| 97se亚洲| 亚洲精品在线91| 成人免费视频一区二区三区| 又爽又黄又无遮挡网站| 亚洲人成网线在线播放va| 精品午夜国产福利观看| 无码丝袜人妻| 国产在线高清一级毛片| 亚洲欧美成人网| 国产高清在线丝袜精品一区| 亚洲人成在线精品| 亚洲精品无码AⅤ片青青在线观看| 久久女人网| 国产三级a| 99国产精品免费观看视频| 波多野结衣一区二区三区四区| 一级一毛片a级毛片| 国产91丝袜在线播放动漫 | 欧美成人怡春院在线激情| 国产成人亚洲无码淙合青草| 麻豆精选在线| 无遮挡一级毛片呦女视频| 国产亚洲精久久久久久无码AV| 欧美激情综合一区二区| 欧美国产精品不卡在线观看| 亚洲网综合| 在线观看无码av五月花| 又黄又湿又爽的视频| 国产无码精品在线播放| 色国产视频| 国产第八页| 国产精品永久久久久| 亚洲国产成熟视频在线多多| 亚洲精品视频免费| 成人国产三级在线播放| 欧美a级完整在线观看| 午夜福利在线观看成人| 19国产精品麻豆免费观看| 亚洲—日韩aV在线| 在线播放91| 国产精鲁鲁网在线视频| 国产在线一区视频| 精品亚洲麻豆1区2区3区| 香蕉久人久人青草青草| 91丝袜美腿高跟国产极品老师| 国产网站一区二区三区| 狠狠五月天中文字幕| a级毛片免费在线观看| 久久精品91麻豆| 无码内射中文字幕岛国片| 九九九精品成人免费视频7| 激情在线网| 欧美一级黄片一区2区| 国产本道久久一区二区三区| 欧美.成人.综合在线| 黄色一及毛片| 国国产a国产片免费麻豆| 思思热精品在线8| 国产亚洲高清视频| 无码粉嫩虎白一线天在线观看| 亚洲精品国产成人7777| 国产地址二永久伊甸园| 91青青草视频| 97国产一区二区精品久久呦| 2022国产91精品久久久久久|