上机1:基于WinPcap的网络嗅探器设计与实现_第1页
上机1:基于WinPcap的网络嗅探器设计与实现_第2页
上机1:基于WinPcap的网络嗅探器设计与实现_第3页
上机1:基于WinPcap的网络嗅探器设计与实现_第4页
上机1:基于WinPcap的网络嗅探器设计与实现_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上机1:基于WinPcap的网络嗅探器设计与实现上机1:基于WinPcap的网络嗅探器设计1、目的与要求掌握基于WinPcap的网络编程模式。理解并能应用WinPcap设计并实现网络数据包的捕获与解析。2、设备与上机环境连网PC机(至少一台)。计算机硬件要求:IntelPentium5处理器、256MB以上内存,Ethernet网卡,网线若干。计算机软件要求:MSWindows9x/2000/XP操作系统,TCP/IP协议,WinPcap430,Visualc++6.0/.net系统。3、上机内容与步骤:在程序设计之前,请参照提供的软件安装WinPcap。之后,按照如下步骤操作:步骤1:在VC++6.0下创建一个DOS命令行程序,工程名:自己的学号-PacketDump intres; structpcap_pkthdr*header; constu_char*pkt_data; printf("pktdump_ex:printsthepacketsofthenetworkusingWinPcap.\n"); printf("Usage:pktdump_ex[-ssource]\n\n" "Examples:\n" "pktdump_ex-sfile.acp\n" "pktdump_ex-s\\Device\\NPF_{C8736017-F3C3-4373-94AC-9A if(argc<3) { printf("\nNoadapterselected:printingthedevicelist:\n"); /*Theuserdidn'tprovideapacketsource:Retrievethelocaldevicelist*/ if(pcap_findalldevs(&alldevs,errbuf)==-1) { fprintf(stderr,"Errorinpcap_findalldevs_ex:%s\n",errbuf); exit(1); } /*Printthelist*/ for(d=alldevs;d;d=d->next) { printf("%d.%s\n",++i,d->name); if(d->description) printf("(%s)\n",d->description); else printf("(Nodescriptionavailable)\n"); } if(i==0) { printf("\nNointerfacesfound!MakesureWinPcapisinstalled.\n"); return-1; } printf("Entertheinterfacenumber(1-%d):",i); scanf("%d",&inum); if(inum<1||inum>i) { printf("\nInterfacenumberoutofrange.\n"); /*Freethedevicelist*/ pcap_freealldevs(alldevs); return-1; } /*Jumptotheselectedadapter*/ for(d=alldevs,i=0;i<inum-1;d=d->next,i++); /*Opentheadapter*/ if((fp=pcap_open_live(d->name, //nameofthedevice 65536, //portionofthepackettocapture. //65536grantsthatthewholepacketwillbecapturedonalltheMACs. 1, //promiscuousmode(nonzeromeanspromiscuous) 1000, //readtimeout errbuf //errorbuffer ))==NULL) { fprintf(stderr,"\nErroropeningadapter\n"); return-1; } } else { /*Donotcheckfortheswitchtype('-s')*/ if((fp=pcap_open_live(argv[2], //nameofthedevice 65536, //portionofthepackettocapture. //65536grantsthatthewholepacketwillbecapturedonalltheMACs. 1, //promiscuousmode(nonzeromeanspromiscuous) 1000, //readtimeout errbuf //errorbuffer ))==NULL) { fprintf(stderr,"\nErroropeningadapter\n"); return-1; } } /*Readthepackets*/ while((res=pcap_next_ex(fp,&header,&pkt_data))>=0) { if(res==0) /*Timeoutelapsed*/ continue; /*printpkttimestampandpktlen*/ printf("%ld:%ld(%ld)\n",header->ts.tv_sec,header->ts.tv_usec,header->len); /*Printthepacket*/ for(i=1;(i<header->caplen+1);i++) { printf("%.2x",pkt_data[i-1]); if((i%LINE_LEN)==0)printf("\n"); } printf("\n\n"); } if(res==-1) { printf("Errorreadingthepackets:%s\n",pcap_geterr(fp)); return-1; } pcap_close(fp); return0;步骤3:为编译器指定包含文件和库文件搜索目录。假定WinPcap开发包WpdPack_4_0_2.zip被解压缩到C盘,如下图:为编译器指定包含文件和库文件搜索目录的方法如下:在VC++6.0下,打开Tools菜单,选择Options,然后选择Directories选项卡,指定WinPcap包含文件和库文件目录,如下图所示。步骤4:指定链接的库文件。方法:打开Project菜单,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论