




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、沈陽理工大學課程設計專用紙NOi課程設計目的i iII2課程設計要求1 :II3 ARP相關知識1 :II4課程設計分析2 :I I5程序代碼2 !|iI6 運行結果與分析 8 I7參考文獻9沈陽理工大學沈陽理工大學課程設計專用紙No9沈陽理工大學硬件類型協(xié)議類型物理地址長度協(xié)議地址長度操作源物理地址(八位組 03)源物理地址(八位組 45)源IP地址(八位組01)08162431(位)1課程設計目的 III在windows環(huán)境下編寫程序,實現(xiàn)ARP數(shù)據(jù)包的解析過程, 打印具體數(shù)據(jù),并同時寫入日志文件。I | li2課程設計要求III通過編制程序,獲取網(wǎng)絡中的ARP數(shù)據(jù)包,解析數(shù)據(jù)包的內(nèi)容,將
2、結果顯示在標準輸出上,并同時寫入日志文件。程序的具體要求如下所示:1 .以命令行的形式運行,如下所示:arpparse logfile 其中,arpparse為程序名;lo gfile為日志文件名。2. 程序輸出內(nèi)容如下所示:源IP地址 源MAC地址 目的IP地址 操作 時間各部分的說明如下所示:源IP地址:輸出ARP消息格式中的源IP地址字段源MAC地址:輸出ARP消息格式中的源物理地址字段目的IP地址:輸出ARP消息格式中的目的IP地址字段。目的MAC地址:輸出ARP消息格式中的目的物理地址字段操作:輸出ARP消息格式中的操作字段,若為ARP青求,則為1,若為ARP應答,則為2,時間:該A
3、RP包產(chǎn)生的時間 。3. 當程序接收到鍵盤輸入 Ctrl+C時字段3 ARP相關知識ARP協(xié)議概述網(wǎng)絡上的每臺主機或設備都有一個或多個ip地址。ip地址是網(wǎng)絡層的地址,在網(wǎng)絡層,數(shù)據(jù)被組裝成IP包。但是發(fā)送IP包需要物理設備的支持(通常是 Ethernet設備,在本課程設計中我們指定為 Ethernet設備),即發(fā)送端必須知道目的物理地址才能將IP包發(fā)送出去,所以需要一種將IP地址映射為物理地址的機制。ARP協(xié)議就是用來完成這個任務的。ARP協(xié)議能夠在同一個物理網(wǎng)絡中,在給定目的主機或設備的IP地址的條件下,得到目的主機或設備的物理地址。網(wǎng)絡上的每臺主機或設備都有一個或多個IP地址。IP地址是
4、網(wǎng)絡層的地址,在網(wǎng)絡層數(shù)據(jù)被組裝成IP包。但是發(fā)送IP包需要物理設備的支持(通常是 Ethernet設備,在本課程設計中我們指定為Ethernet設備),即發(fā)送端必須知道目的物理地址才能將IP包發(fā)送出去,所以需要一種將IP地址映射為物理地址的機制。ARP協(xié)議就是用來完成這個任務的。ARP協(xié)議能夠在同一個物理網(wǎng)絡中,在給定目的主機或設備的IP地址的條件下,得到目的主機或設備的物理地址。ARP協(xié)議的數(shù)據(jù)包格式如圖1所示。源IP地址(八位組23)目的物理地址(八位組 01)目的物理地址(八位組 25)目的IP地址(八位組 03)圖1 ARP數(shù)據(jù)包的消息格式4課程設計分析1.設計分析:硬件類型:指定硬
5、件接口類型。例如,值為1表示Ethernet協(xié)議類型:指定發(fā)送方支持的上層協(xié)議的類型物理地址長度:指定物理(硬件)地址的長度協(xié)議地址長度:網(wǎng)絡層協(xié)議的地址長度。若為IP協(xié)議,其值為4操作:指定ARP的操作類型,例如,1表示ARP請求,2表示ARP應答 源物理地址:指定發(fā)送方的IP地址目的物理地址:指定目的物理地址。目的IP地址:指定目的IP地址ARP分組必須在數(shù)據(jù)鏈路層中被封裝成偵,才能發(fā)送出去。封裝形式如圖2所示:ARP消息T1幀頭部幀數(shù)據(jù)圖2將ARP數(shù)據(jù)包封裝成幀2協(xié)、議程序的選擇及分析(1)程序中會用到 Winpcap,Winpcap是Win32環(huán)境下數(shù)據(jù)包捕獲的開放代碼函數(shù)庫?;?W
6、inpcap的應用程序一般按照下面幾個步驟進行設計:輸出網(wǎng)卡設備列表,選擇網(wǎng)卡并打開,捕獲數(shù)據(jù)包時,可能需要設置過濾器,捕獲數(shù)據(jù)包或者發(fā)送數(shù)據(jù)包。(2)在程序設計過程中需要注意網(wǎng)絡一主機字節(jié)順序的轉化。由于不同的計算機系統(tǒng)所采用的數(shù)據(jù)表示方式不同,對于2B或4B的數(shù)據(jù),有的采用低字節(jié)地址存放數(shù)據(jù)的高權值位,而有的去卩以低地址字節(jié)存放數(shù)據(jù)低權位值,在網(wǎng)絡的數(shù)據(jù)傳輸中,我們應該統(tǒng)一表示,所以我們在捕獲數(shù) 據(jù)包后,應將數(shù)據(jù)包頭部的表示長度或類型的數(shù)據(jù)轉換成本地機的表達形式。可以利用函數(shù)n tohs()將網(wǎng)絡字節(jié)序轉換為主機字節(jié)序。(3)選擇網(wǎng)卡并打開時,注意選擇可用的網(wǎng)卡。具體流程圖如下:打開網(wǎng)卡(
7、混雜模式)編譯設置過濾器捕獲ARP包并將其相應內(nèi)容輸出結束圖3流程圖5程序代碼#i nclude#pragma comment(lib,Ws2_32.lib)/ 用到 ntobs()/等同于點擊project-setting-link打開object/library module 編輯框后加入文件#pragma comme nt(lib,wpcap.lib)#include pcap.h此頭文件沒有包含在VC中,需要另外加入#in clude#i nclude格式化輸出需要用到#in clude/ 用至 U _getch()注意到接收的數(shù)據(jù)包頭中代表類型,數(shù)據(jù)長度的字段采用的是big-e nd
8、ian所以對于2B/4B的數(shù)據(jù)要用ntohs()轉換為本機形式/ARP包結構struct arppktunsigned short hdtyp; 硬件類型.值 0001un sig ned short protyp;un sig ned char hdsize;un sig ned char prosize;un sig ned short op;u_char smac6;u_char sip4;u_char dmac6;u_char dip4;void packet_ha ndler(c onst pcap_pkthdr *header,c onst u_char *pkt_data,ost
9、ream& out);void main (i nt argc,char *argv)if(argc!=2)coutUsage:arpparse logfile namee ndl;coutpress any key to con ti nu e.e ndl;_getch();return;pcap_if_t *alldevs;pcap_if_t *d;pcap_t *adha ndle; char errbufPCAP_ERRBUF_SIZE;u_int n etmask;char packet_filter=ether proto Warp;struct bpf_program fcode
10、;struct pcap_pkthdr *header;const u_char *pkt_data;if(pcap_fi ndalldevs (&alldevs,errbuf)=-1)coutError in pcap_fi ndalldevs:n ext)if(adha ndle=pcap_open_live(d- name,1000,1,300,errbuf)=NULL)coutaddressess!=NULL) break;if(d=NULL)coutnetmask)-sin_addr.s_un.s_addr; 編譯過濾器,只捕獲 ARP 包 if(pcap_compile(adha
11、ndle, &fcode,packet_filter,1, netmask)0)coutnUn able to compile the packet filter.Check the syn tax.n;pcap_freealldevs(alldevs);return;/設置過濾器if(pcap_setfilter(asha ndle,& fcode)0)coutnError setting the filter.n;pcap_freealldevs(alldevs);return;coutttlistening on description.endlendl;顯示提示信息及每項含義ofstr
12、eam fout(argv1,ios:app); / 日志記錄文件/為了查看日志時的方便,其中加入了日期記錄time_t t;time(&t);fout.seekp(0,ios:e nd);if(fout.tellp()!=0)foute ndl;foutttARP request(1)/reply(2) onctime(&t);coutSour Ip Addr Sour MAC AddressDes Ip Addr Des MAC AddressOPTimee ndl;foutSour Ip Addr Sour MAC AddressDes Ip Addr Des MAC Address0P
13、Time=0)if(result=0)con ti nue;packer_ha ndler(header,pkt_data,cout);packet_ha ndler(header,pkt_data,fout);void packet_ha ndler(c onst pcap_pkthdr *header,c onst u_char *pkt_data,ostream& out) arpkt* arph = (arppkt *)(pkt_data +14);for(int i=0;i3;i+)outsipi).;out.setf(ios:left);outsetw (3)sip3);out.u
14、 nsetf(ios:uppercase);for(i=0;i5;i+)outhexsetw(2)smaci)_;outhexsetw(2) smac5);out.fill(oldfillchar);out. un setf(ios:hex|ios:uppercase);for(i=0;i3;i+)outdip3).;out.unsetf(ios:left); 輸出目的 MAC 地址out.fill(O);out.setf(ios:uppercase);for(i=0;i5;i+)outhexsetw(2)dmaci)_:out.fill(oldfillchar);out. un setf(i
15、os:hex|ios:uppercase);out op)ts.tv_sec);sout.fill(O);outtm_hour:setw(2)tm_ min :setw(2)tm_sec;out.fill(oldfillchar);outParsflrp log,txtListening:10/100/1906 Ethernet ttEC F,Sour IP Ad drSour* MAC AddrDg IP Addr*D#e HAC AddrvsOPTiiv192 1C8.V8498-22-1-1 3*4C*41192.168,1.25400 - O0-OCOCI-D0-0O112:24:241 23D4e-is-gr-3r-30-351S2 168.1.230G G-0 0-9-6D-QO-0G112:24:331921 23340-IG-9r-3F-3B-351S2 168.1.238BQ-9 &-0-0 -60-00-30112:25;3192 9,1.23040-I6-9F-3F-30-35192,1S8.t 23Bere-ee-e-eo-OQ-oe112:26:35h2TG 1 .65Ge-1G-9F-3F-30-35192.153. 254G 0 0 G - 0-0 BO - 0O-00112:27:23L
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 通信維護合作施工方案
- 貨物運輸狀態(tài)跟蹤記錄表
- 員工投資入股協(xié)議書
- 事業(yè)單位試用期合同
- 教育資源分配計劃表
- 土方采購合同協(xié)議書
- 防盜網(wǎng)施工方案
- 糧庫糧情施工方案
- 儲罐安裝施工方案
- 樂山餐廳假山施工方案
- 湖北省2025屆高三下學期2月調考語文試題及參考答案
- 2025年湖南國防工業(yè)職業(yè)技術學院單招職業(yè)技能測試題庫完整版
- 2025年《地陪導游服務程序》公開課標準教案
- 愛耳日完整課件
- 過敏性休克完整版本
- DBJ15 31-2016建筑地基基礎設計規(guī)范(廣東省標準)
- 2024年益陽醫(yī)學高等??茖W校單招職業(yè)適應性測試題庫及答案解析
- 樓頂發(fā)光字采購安裝投標方案
- 2022年人力資源管理師課程表
- 夢中的婚禮鋼琴簡譜(共6頁)
- 3DMAX教案_免費
評論
0/150
提交評論