計算機網絡課程設計(第六章)解析ARP數據包(完整程序代碼)_第1頁
計算機網絡課程設計(第六章)解析ARP數據包(完整程序代碼)_第2頁
計算機網絡課程設計(第六章)解析ARP數據包(完整程序代碼)_第3頁
計算機網絡課程設計(第六章)解析ARP數據包(完整程序代碼)_第4頁
計算機網絡課程設計(第六章)解析ARP數據包(完整程序代碼)_第5頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選文檔可編輯計算機網絡課程設計機械工業(yè)出版社第6章:解析ARP數據包課程設計目的:數據包的結構,對 課程設計的內容和要求通過編制程序顯示在標準輸出上ARP協議有更好的理解和認識。本課程設計的主要目的是對網絡上的ARP數據包進行解析,從而熟悉 ARP獲取網絡中的ARP數據包 解析數據包的內容 將結果 并同時寫入日志文件。程序的具體要求如下所示1、以命令行的形式運行arp arp.log其中 arp為程序名arp.log為日志文件名。2、程序輸出內容如下所示源IP地址 源MAC地址 目的IP地址 操作 時間各部分的說明如下所示源IP地址 輸出ARP消息格式中的源IP地址字段源MAC地址 輸出AR

2、P消息格式中的源物理地址字段目的IP地址 輸出ARP消息格式中的目的IP地址字段。目的MAC地址 輸出ARP消息格式中的目的物理地址字段操作 輸出ARP消息格式中的操作字段若為ARP請求 則為1若為ARP應答 則為2時間該ARP包產生的時間3、當程序接收到鍵盤輸入 Ctrl+C時字段完整程序代碼:#include<conio.h>#include<fstream.h> #include<iomanip.h>#include "pcap.h"#include<winsock2.h>#pragma comment(lib,&quo

3、t;ws2_32.lib")#pragma comment(lib,"wpcap.lib") struct arppktunsigned short hdtyp;unsigned short protyp;unsigned char hdsize;unsigned char prosize;unsigned short op;u_char smac6;u_char sip4;u_char dmac6;u_char dip4;void packet_handler(const pcap_pkthdr *header,const u_char*pkt_data,ost

4、ream &out)arppkt* arph=(arppkt*)(pkt_data+14);for(int i=0;i<3;i+)out<<int(arph->sipi)<<'.'out.setf(ios:left);out<<setw(3)<<int(arph->sip3)<<" "out.unsetf(ios:left);char oldfillchar=out.fill('0');out.setf(ios:uppercase);for(i=0;i<

5、;5;i+)out<<hex<<setw(2)<<int(arph->smaci)<<'-'out<<hex<<setw(2)<<int(arph->smac5)<<" "out.fill(oldfillchar);out.unsetf(ios:hex|ios:uppercase);for(i=0;i<3;i+)out<<int(arph->dipi)<<'.'out.setf(ios:left);o

6、ut<<setw(3)<<int(arph->dip3)<<" "out.unsetf(ios:left);out.fill('0');out.setf(ios:uppercase);for(i=0;i<5;i+)out<<hex<<setw(2)<<int(arph->dmaci)<<'-'out<<hex<<setw(2)<<int(arph->dmac5)<<" "

7、;out.fill(oldfillchar);out.unsetf(ios:hex|ios:uppercase);out<<ntohs(arph->op)<<" "struct tm *ltime;ltime=localtime(&header->ts.tv_sec);out.fill('0');out<<ltime->tm_hour<<':'<<setw(2)<<ltime->tm_min<<':'<&l

8、t;setw(2)<<ltime->tm_sec;out.fill(oldfillchar);out<<endl;void main(int argc,char *argv)if(argc!=2)cout<<"please input command: parsearp output_file"<<endl; return;pcap_if_t *alldevs;pcap_if_t *d;pcap_t *adhandle;char errbufPCAP_ERRBUF_SIZE;u_int netmask;char pack

9、et_filter="ether proto arp"struct bpf_program fcode;struct pcap_pkthdr *header;u_char *pkt_data;/ 獲取網絡設備列表if (pcap_findalldevs(&alldevs,errbuf)=-1)cout<<"error in pcap_find all devs:"<<errbuf;return;/ 選擇一個 ethernet 網卡for(d=alldevs;d;d=d->next)if(adhandle=pcap_o

10、pen_live(d->name,1000,1,300,errbuf)=NULL)cout<<"Unable to open ther adapter."pcap_freealldevs(alldevs);return;if(pcap_datalink(adhandle)=DLT_EN10MB&&d->addresses!=NULL) break;if(d=NULL)cout<<"No interface found!Make sure WinPcap is installed."return;netm

11、ask=(sockaddr_in*)(d->addresses->netmask)->sin_addr.S_un.S_addr; if(pcap_compile(adhandle,&fcode,packet_filter,1,netmask)<0) cout<<"Unable to compile the packet filter.Check the syntax."pcap_freealldevs(alldevs);return;if(pcap_setfilter(adhandle,&fcode)<0)cout&

12、lt;<"Error setting the filter."pcap_freealldevs(alldevs);return;cout<<"Listening on"<<d->description<<"."<<endl;ofstream fout(argv1,ios:app);time_t t;time(&t);fout.seekp(0,ios:end);if(fout.tellp()!=0)fout<<endl;fout<<"t

13、tAPP requst(1)/reply(2) on "<<ctime(&t);cout<<"Sour IP Addr"<<" "<<"Sour MAC Address"<<" "<<"Des IPAddr"<<" "<<"Des MAC Address"<<" "<<"OP"&l

14、t;<" "<<"Time"<<endl;fout<<"Sour IP Addr"<<" "<<"Sour MAC Address"<<" "<<"Des IPAddr"<<" "<<"Des MAC Address"<<" "<<"OP"&

15、lt;<" "<<"Time"<<endl; pcap_freealldevs(alldevs);int result;while(result=pcap_next_ex(adhandle,&header,&pkt_data)>=0)if(result=0)continue;packet_handler(header,pkt_data,cout);packet_handler(header,pkt_data,fout);結果截圖匿=苣建比,一空一號D: cd AS虹hog扁統(tǒng)找不到指定的茹隆口:X>

16、;cd bXDebn5fD : i&I>efoiig >6 _exe S . txt丕是內部或外部命令,也不是可運行的程序 或批處理支徉,listen iog op nte 1< H> 82SG7LM-J Gigahi七 Hetworl< Connect ion , Tour IP Addr Sour MAC Address Dew JP Addr De零 MAC AddressWB1F-DW 4GEE號.76.G3.1£? 號.76b3,151?7G.63.1339 -7&.&3,t 3(-9.76.&3US999.7&

17、amp;.b3.1299.7G.t2.14G9.7S.&3.1S19 .7S.63.1 4(J0B-1F- DH-4a-FB08-lFDa4C-FB-00- 1F-D0 -4C-EE- 7»-F3-9&-01-7b- U8-1F-DW-4C-FB-001F-DU""4C-PB- 80-21-lC-SD-a7- 001 F-D0-47-tB- aa-l F-D0-4C-P1 -I 00-1 F-DW-47-&0-IS9 .IS子S9.V&.b3_133S9.7B.63>133 59.76.63.159S9.7t.63,1S9S9.'/t.63,13(!lS9 .63.129S9.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論