• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2020-06-24 05:09:03謝劍
      現(xiàn)代信息科技 2020年22期
      關鍵詞:網絡信息實用性

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

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

      中圖分類號: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? 引? 言

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

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

      1? 系統(tǒng)需求分析與設計

      1.1? 系統(tǒng)需求分析

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

      1.2? 開發(fā)環(huán)境及關鍵技術

      該軟件是基于Widows 10系統(tǒng),采用C++語言來實現(xiàn)的一個抓包軟件。

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

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

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

      1.3? 系統(tǒng)詳細設計

      1.3.1? 系統(tǒng)功能結構設計

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

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

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

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

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

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

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

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

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

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

      1.3.2? 系統(tǒng)數(shù)據庫設計

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

      2? 結? 論

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

      參考文獻:

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

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

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

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

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

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

      猜你喜歡
      網絡信息實用性
      醫(yī)學論文實用性的判斷
      醫(yī)學論文實用性的判斷
      醫(yī)學論文實用性的判斷
      醫(yī)學論文實用性的判斷
      論如何有效應對網絡信息安全問題所帶來的威脅
      淺談高校網絡信息安全問題與對策
      網絡信息下高中生投資理財觀念培養(yǎng)
      時代金融(2016年27期)2016-11-25 18:33:25
      透視網絡信息對中國共產黨和政府的隱性攻擊分析方法研究
      網絡發(fā)展對大學生思政教育帶來的挑戰(zhàn)及應對策略
      對計算機網絡信息和網絡安全及其防護策略的探討
      易门县| 个旧市| 台前县| 乐安县| 个旧市| 什邡市| 双流县| 阜新市| 务川| 铜陵市| 广西| 安福县| 晴隆县| 甘肃省| 德州市| 本溪| 九寨沟县| 鱼台县| 凤阳县| 蒲城县| 赤城县| 苏州市| 右玉县| 嘉黎县| 泗洪县| 临沭县| 安图县| 库尔勒市| 周口市| 永兴县| 牙克石市| 吉水县| 江山市| 白城市| 定日县| 常德市| 寻乌县| 枣阳市| 大关县| 衡南县| 兰州市|