版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、.目錄33 3.4:.5: .6 .6 : .6專業(yè) .專注.一、課程設計目的隨著 Internet技術(shù)的發(fā)展 ,基于 IP 協(xié)議的應用成為網(wǎng)絡技術(shù)研究與軟件開發(fā)的一個重要基礎 ,因此學習網(wǎng)絡層以基本概念,了解 IP 協(xié)議的基本內(nèi)容 ,對于掌握 TCP/IP 協(xié)議的主要內(nèi)容和學習網(wǎng)絡課程是十分重要的,通過本次課程設計,有助于熟悉 IP 包格式和加深對IP 協(xié)議的理解 。二、課程設計要求編制程序 ,監(jiān)控網(wǎng)絡 ,捕獲一段時間內(nèi)網(wǎng)絡上的IP 數(shù)據(jù)包,按 IP 數(shù)據(jù)包的源地址統(tǒng)計出該源地址在該時間段內(nèi)發(fā)出的IP 包的個數(shù) ,將其寫入日志文件中或用圖形表示出來 (建議用圖形表示出統(tǒng)計結(jié)果)。程序的具體要
2、求如下 :用命令行運行 : IPStatistic time logfile其中, IPStatistic 是程序名 ;time 是設定的統(tǒng)計時間間隔 (單位為分鐘 ,比如,2 表示 2 分鐘); logfile 表示統(tǒng)計結(jié)果寫入的日志文件名(若用圖形表示統(tǒng)計結(jié)果則可以不選這個參數(shù))。相關(guān)知識 :IP 是 ICP/IP 協(xié)議體系中的網(wǎng)絡層協(xié)議,TCP、 UDP、ICMP 和 IGMP 等其他協(xié)議都是以 IP 協(xié)議為基礎的 。IP 的特點如下 :( 1) IP 協(xié)議是一種不可靠 、無連接的數(shù)據(jù)報傳送協(xié)議 。( 2) IP 協(xié)議是點對點的網(wǎng)絡層通信協(xié)議 。專業(yè) .專注.( 3) IP 協(xié)議向通信層
3、隱藏了物理網(wǎng)絡的差異。三、課程設計主要思路分析1課程設計中的重點及難點( 1)程序中會用到 Winpcap, Winpcap是 Windows packet capture的縮寫,這是 UNIX 下的 lipbcap 移植到 Windows 下的產(chǎn)物 ,是 Win32 環(huán)境下數(shù)據(jù)包捕獲的開放代碼函數(shù)庫。 Winpcap由內(nèi)核級的數(shù)據(jù)包過濾器,底層動態(tài)鏈接庫( packet.dll )和一個高層的獨立于系統(tǒng)的庫 (wpcap.dll )組成 。Winpcap 提供以下功能 :1) 捕獲原始數(shù)據(jù)報 ,包括共享網(wǎng)絡上各主機發(fā)送/ 接收的數(shù)據(jù)報以及各主機之間交換的數(shù)據(jù)報 。2) 在數(shù)據(jù)報發(fā)往應用程序之
4、前,按照自定義的規(guī)則過濾某些特殊的數(shù)據(jù)報。3) 將用戶構(gòu)造的數(shù)據(jù)報發(fā)送到網(wǎng)絡中。4) 統(tǒng)計網(wǎng)絡的流量 。Winpcap 的主要功能在于獨立于主機協(xié)議(如 TCP/IP)發(fā)送和接收原始數(shù)據(jù)報 。也就是說 ,Winpcap不能阻塞 、過濾或控制其他應用程序數(shù)據(jù)報的收發(fā),它只是監(jiān)聽共享網(wǎng)絡上傳送的數(shù)據(jù)報。因此 ,它不能用于 QoS 調(diào)度程序或個人防火墻?;?Winpcap 的應用程序一般按照下面幾個步驟編寫:1) 獲取網(wǎng)絡設備列表 。2) 選擇網(wǎng)卡并打開 。3) 當捕獲數(shù)據(jù)包時 ,可能需要設置過濾器 。4) 捕獲數(shù)據(jù)包或者發(fā)送數(shù)據(jù)包。專業(yè) .專注.Packet.dll 相關(guān)數(shù)據(jù)結(jié)構(gòu)typedef
5、struct_ADAPTERADAPTER/ 描述一個網(wǎng)絡適配器typedef struct_PACKET PACKET 具/ 描述一組網(wǎng)絡數(shù)據(jù)報的結(jié)構(gòu)typedef struct NetType NetType/ 描述網(wǎng)絡類型的數(shù)據(jù)結(jié)構(gòu)typedef struct npf_if_addr npf_if_addr /描述一個網(wǎng)絡適配器的IP 地址struct bpf_hdr/ 數(shù)據(jù)報頭部struct bpf_stat/ 當前捕獲數(shù)據(jù)報( 2)列出網(wǎng)卡列表 ,讓用戶選擇可用的網(wǎng)卡 。( 3)注意過濾器的使用 ,只需捕獲 IP 所,別的包都需過濾掉 。2參考算法( 1)取得當前網(wǎng)絡設備列表 (在標
6、準輸出上顯示 ,以讓用戶進行選擇 )。( 2)將用戶選擇的 Ethernet 卡以混雜模式打開 ,以接收到所有的數(shù)據(jù)包 。( 3)設置過濾器 ,此處的過濾器 “IP”。( 4)捕獲 IP 包并按包的源地址進行統(tǒng)計 (用鏈表結(jié)構(gòu)進行實現(xiàn) )。程序流程如圖 1-1 所示:四、設計流程圖 。專業(yè) .專注.開始獲取網(wǎng)卡列表選取 Ethermet 網(wǎng)卡打開網(wǎng)卡(混雜模式)編譯設置過濾器捕獲 IP包將IP 包源地址加入鏈表超時否?輸出鏈表內(nèi)容結(jié)束圖 1-1 程序流程圖五、運行結(jié)果 :安裝好 WinPcap 軟件,在 VC+ 界面上點擊工具 -> 選項 -> 目錄 。添加 Include專業(yè) .
7、專注.文件夾下的所有文件和Lib 下的所有內(nèi)容 ,調(diào)試完程序無誤后 ,點擊開始 > 運行 “cmd ”進入目標文件夾 Debug 下運行 IPI.EXE文件并加入?yún)?shù) 2 bl.txt 。 此時程序會檢測電腦系統(tǒng)中的網(wǎng)卡數(shù),然后選擇程序運行時的網(wǎng)絡接口,耐心等待兩分鐘后就會得到程序的運行結(jié)果.圖 1-2 系統(tǒng)中網(wǎng)絡接口數(shù)圖 1-3 選擇第一個網(wǎng)絡接口圖 1-4 1 分鐘之后捕獲的ip 地址和數(shù)據(jù)包專業(yè) .專注.六、總結(jié):通過本次計算機網(wǎng)絡課程設計,我更加充分的理解了課本上的知識,并能夠加以擴展,從而應用于實踐當中,這幾天的課程設計令我受益匪淺,我意識到我們所學的東西將來都是要付諸實踐的,
8、所以一切要從實際情況出發(fā),理論聯(lián)系實際,這樣才能真正發(fā)揮我們所具備的能力 。這次計算機網(wǎng)絡課程設計歷時二個星期,在整整十多天的日子里,可以說得是苦多于甜 ,但是可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。以前對于編程工具的使用還處于一知半解的狀態(tài)上 ,但是經(jīng)過一段上機的實踐,對于怎么去排錯 、查錯 ,怎么去看每一步的運行結(jié)果。 通過這次課程設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的 ,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的
9、過程中遇到問題,可以說得是困難重重 ,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固 。 這次課程設計終于順利完成了,在設計中遇到了很多編程問題,最后在老師的辛勤指導下,終于游逆而解 。 同時, 在老師的身上我學得到很多實用的知識,在次我表示感謝 !同時 ,對給過我?guī)椭乃型瑢W和各位指導老師再次表示忠心的感謝!參考文獻1 吳功宜胡曉英 .計算機網(wǎng)課程設計北京 :機械工業(yè)出版社 ,2007.12.專業(yè) .專注.2 張蕘學 郭國強 .計算機網(wǎng)絡與 Internet 教程 (第二版 ) 北京 :清華大學出版社2
10、006.11.3 王春曉 趙艷標 .計算機網(wǎng)絡教程 北京 :機械工業(yè)出版社 ,2005.08.4 張仁 何云 .計算機網(wǎng)絡課程設計指導 北京 :清華大學出版社 2006.05.源代碼 :/ 主程序#include <iostream.h>#include <iomanip.h>#include <fstream.h>#include <stdlib.h>#include <stdio.h>#include <conio.h>#include "pcap.h"/#include "IPNodeL
11、ist.h"#pragma comment(lib,"Wpcap.lib")#pragma comment(lib,"Ws2_32.lib")/IP 包的頭部包括struct ip_headerunsigned char ver_ihl;/ 版本號 (4 位)+ 頭部長度 (4 位 )unsigned char tos;/ 服務類型unsigned short tlen;/ 總長度unsigned short identification;/ 標識專業(yè) .專注.unsigned short flags_fo;/ 標志 + 片偏移unsigned
12、 char tll;/ 生存時間unsigned char proto;/ 協(xié)議unsigned short crc;/ 校驗碼DWORD saddr;/ 源地址DWORD daddr;/ 目的地址unsigned int op_pad;/ 選項+填充;class IPNodeprivate:long m_lIPAddress;/IP 地址long m_lCount;/ 發(fā)送數(shù)據(jù)包數(shù)public:IPNode *pNext;/ 指向下一個 IP 結(jié)點/ 構(gòu)造函數(shù)IPNode(long sourceIP)m_lIPAddress=sourceIP;m_lCount=1;/ 初始化數(shù)據(jù)包個數(shù)為 1
13、/ 數(shù)據(jù)包個數(shù)加 1專業(yè) .專注.void addCount()m_lCount+;/ 返回數(shù)據(jù)包個數(shù)long getCount()return m_lCount;/ 返回 IP 地址long getIPAddress()return m_lIPAddress;/ 結(jié)點鏈表class NodeListIPNode *pHead;IPNode *pTail;public:NodeList()專業(yè) .專注.pHead=pTail=NULL;NodeList()if(pHead!=NULL)IPNode *pTemp=pHead;pHead=pHead->pNext;delete pTemp;
14、/IP 結(jié)點加入鏈表void addNode(long sourceIP)if(pHead=NULL)/ 當鏈表為空時pTail=new IPNode(sourceIP);pHead=pTail;pTail->pNext=NULL;else/ 不為空時專業(yè) .專注.for(IPNode *pTemp=pHead;pTemp;pTemp=pTemp->pNext)/ 如果鏈表中存在此 IP,發(fā)送數(shù)據(jù)包個數(shù)加 1 if(pTemp->getIPAddress()=sourceIP)pTemp->addCount();break;/ 如果鏈表中沒有此 IP,則加入鏈表if(p
15、Temp=NULL)pTail->pNext=new IPNode(sourceIP);pTail=pTail->pNext;pTail->pNext=NULL;/ 輸出 IP 結(jié)點 ,即 IP 地址和其他送的 IP 包的個數(shù)ostream& print(ostream & out)for(IPNode *pTemp=pHead;pTemp;pTemp=pTemp->pNext)專業(yè) .專注.long lTemp=pTemp->getIPAddress();out<<inet_ntoa(*(in_addr*)&(lTemp)&l
16、t;<'t'out<<pTemp->getCount()<<endl;return out;void main(int argc,char *argv)if (argc!=3)/ 判斷是否正確cout<<"Usage:IPStatistic time logfile"<<endl;cout<<"Press any key to continue."<<endl;_getch();return;double min=atof(argv1);pcap_if_t
17、 *alldevs;/ 網(wǎng)絡設備結(jié)構(gòu)pcap_if_t *d,*head=NULL;pcap_t *fp;/ 網(wǎng)卡描述專業(yè) .專注.char errbufPCAP_ERRBUF_SIZE;/ 錯誤信息unsigned int netmask;/ 子網(wǎng)掩碼char packet_filter="ip"/ 過濾 ,選擇 IP 協(xié)議struct bpf_program fcode;struct pcap_pkthdr *header;const unsigned char *pkt_data;/ 獲取網(wǎng)絡設備列表if(pcap_findalldevs(&alldevs,e
18、rrbuf) = -1)cout<<"Error in pcap_findalldevs:"<<errbuf;return;int i=1;/ 網(wǎng)卡數(shù)if(i=0)/ 無設備cout<<"nNo interfaces found! Make sure Winpacp is installed.n"return;if(i>=1)int j=0;for(d=alldevs;d;d=d->next) /列出網(wǎng)卡列表 ,讓用戶進行選擇專業(yè) .專注.cout<<+j<<":"
19、;<<d->name;if(d->description)cout<<" "<<d->description<<endl;cout<<"nEnter the interface number(1-"<<j<<"):"int k;cin>>k;if(k<1|k>j)cout<<"out of range"<<endl;return;for(d=alldevs,i=1;i
20、<k;d=d->next,i+);/ 找到選擇的網(wǎng)卡head=d;/ 以混雜模式方式打開網(wǎng)卡if(fp=pcap_open_live(head->name,1000,1,1000,errbuf)=NULL)cout<<"nUnable to open the adapter."<<endl;pcap_freealldevs(alldevs);return;專業(yè) .專注./ 獲取子網(wǎng)掩碼if(head->addresses!=NULL)netmask=(structelse/ 沒有地址則假設為 C 類地址netmask=0xFF
21、FFFF00;/ 編譯過濾器if(pcap_compile(fp,&fcode,packet_filter,1,netmask)<0)cout<<"nUnable to compile the packet filter.Check the syntax.n"pcap_freealldevs(alldevs);return;/ 設置濾波器if(pcap_setfilter(fp,&fcode)<0)cout<<"nError setting the filter.n"pcap_freealldevs(alldevs);return;專業(yè) .專注./ 顯示提示信息及每項的含義cout<<"ttlistening on"<<head->description<<"."<<endl<<endl;ofstream fout(argv2,ios:app);/ 日志記錄文件fout<<"tIP Statistic:("<<min<<"minutes)"<<endl;time_t tmp=time(NULL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度水溝排水系統(tǒng)智能化改造合同3篇
- 二零二五年度健身房會員卡及設備轉(zhuǎn)讓協(xié)議4篇
- 2025年中國蛤蚧定喘丸行業(yè)市場全景監(jiān)測及投資戰(zhàn)略咨詢報告
- 2025年度農(nóng)藥產(chǎn)品安全評價與風險評估合同8篇
- 二零二五年度城市景觀打井勞務合作協(xié)議書3篇
- 2025年度大型農(nóng)業(yè)機械購置合同示例4篇
- 二零二五年度2025桉樹培育與病蟲害防治工程承包合同3篇
- 2024年安全管理人員安全教育培訓試題含答案(鞏固)
- 二零二四停薪留職員工權(quán)益保障與職業(yè)規(guī)劃合同范本3篇
- 二零二五年度綠色生態(tài)農(nóng)場租賃合作協(xié)議范本4篇
- 射頻在疼痛治療中的應用
- 和平精英電競賽事
- 四年級數(shù)學豎式計算100道文檔
- “新零售”模式下生鮮電商的營銷策略研究-以盒馬鮮生為例
- 項痹病辨證施護
- 職業(yè)安全健康工作總結(jié)(2篇)
- 懷化市數(shù)字經(jīng)濟產(chǎn)業(yè)發(fā)展概況及未來投資可行性研究報告
- 07FD02 防空地下室電氣設備安裝
- 教師高中化學大單元教學培訓心得體會
- 彈簧分離問題經(jīng)典題目
- 部編版高中歷史中外歷史綱要(下)世界史導言課課件
評論
0/150
提交評論