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

基于HTTP報(bào)文網(wǎng)絡(luò)抓包軟件的分析與設(shè)計(jì)

2020-06-24 05:09:03謝劍
現(xiàn)代信息科技 2020年22期

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

關(guān)鍵詞:網(wǎng)絡(luò)信息;抓取解析;自動(dòng)實(shí)時(shí);實(shí)用性;抓包軟件

中圖分類號:TP391;TP311.5? ? ? ?文獻(xiàn)標(biāo)識碼: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è)經(jīng)營決策的制定離不開有效信息的支撐,特別是互聯(lián)網(wǎng)時(shí)代的網(wǎng)絡(luò)信息,信息量大、更新速度快,若仍采用人工方式收集,不僅需要花費(fèi)較高的人力成本,而且還不能保證信息能夠?qū)崟r(shí)收集、實(shí)時(shí)上報(bào),從而影響到企業(yè)運(yùn)營策略的及時(shí)修正,進(jìn)而影響到企業(yè)效益,這種情形在以賺取中間差價(jià)為盈利點(diǎn)的行業(yè)企業(yè)中尤為突出。軟件通過程序方式自動(dòng)抓取、解析指定網(wǎng)站數(shù)據(jù)并保存到數(shù)據(jù)庫,從而取代傳統(tǒng)的人工收集保存方式,在降低成本、提高效率的同時(shí),也保證了數(shù)據(jù)的時(shí)效性。

本軟件是筆者針對學(xué)校的專業(yè)課程“網(wǎng)絡(luò)爬蟲設(shè)計(jì)”而設(shè)計(jì)的一個(gè)案例,通過此案例的分析與設(shè)計(jì),使學(xué)生加深對相關(guān)知識點(diǎn)的理解與應(yīng)用。

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

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

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

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

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

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

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

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

1.3? 系統(tǒng)詳細(xì)設(shè)計(jì)

1.3.1? 系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)

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

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

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

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

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

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

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

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

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

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

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

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

2? 結(jié)? 論

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

參考文獻(xiàn):

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

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

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

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

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

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

主站蜘蛛池模板: 中文字幕亚洲电影| 中文字幕在线欧美| 97青草最新免费精品视频| 国产精品亚洲αv天堂无码| 天天综合网色中文字幕| 99久久人妻精品免费二区| 国产十八禁在线观看免费| 亚洲第一极品精品无码| 91在线视频福利| 亚洲无码A视频在线| 国产丝袜无码一区二区视频| 国产激情影院| 九色91在线视频| 无码AV高清毛片中国一级毛片| 一边摸一边做爽的视频17国产| 国产91透明丝袜美腿在线| 欧洲欧美人成免费全部视频| 日韩精品成人网页视频在线| 日本成人不卡视频| 久久精品一品道久久精品| 久久伊伊香蕉综合精品| 亚洲欧美另类视频| 四虎国产精品永久一区| 婷婷丁香色| 99无码熟妇丰满人妻啪啪 | 免费无码又爽又黄又刺激网站| 又粗又大又爽又紧免费视频| 一区二区欧美日韩高清免费| 精品一区二区三区视频免费观看| 欧美色视频在线| 国产91色在线| 伊人久久久久久久| 日本一区二区不卡视频| 伊人久热这里只有精品视频99| 久久综合伊人 六十路| 一级毛片免费的| 久久久91人妻无码精品蜜桃HD | 亚洲成肉网| 久久婷婷六月| 毛片视频网| 午夜性爽视频男人的天堂| 亚洲人成高清| 五月婷婷伊人网| 狠狠躁天天躁夜夜躁婷婷| 欧美一级视频免费| 国产特级毛片| 亚洲第一色网站| 国产美女在线免费观看| 日本在线欧美在线| 亚洲中文字幕精品| 亚洲无码高清视频在线观看| 亚洲天堂2014| 亚洲AV成人一区国产精品| 日本AⅤ精品一区二区三区日| 久久一色本道亚洲| 伊人久久婷婷五月综合97色| 亚洲一本大道在线| 狠狠色香婷婷久久亚洲精品| 亚洲综合欧美在线一区在线播放| 麻豆精品在线视频| 在线无码九区| 精品无码人妻一区二区| 91麻豆久久久| 婷婷激情五月网| 国产成人无码Av在线播放无广告| 亚洲一区二区三区国产精华液| 五月天香蕉视频国产亚| 成人夜夜嗨| 美女被操91视频| 毛片大全免费观看| 无码专区第一页| 热re99久久精品国99热| 噜噜噜综合亚洲| 成人在线视频一区| 凹凸国产熟女精品视频| 亚洲视频一区在线| 国产亚洲欧美另类一区二区| 国产xx在线观看| 日本91视频| 在线一级毛片| 亚洲国产日韩一区| 午夜福利视频一区|