欢迎来到天天文库
浏览记录
ID:46557064
大小:114.50 KB
页数:18页
时间:2019-11-25
《网络编程实验指导》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《网络编程》实验指导书(适用于计算机科学与技术、网络工程专业、软件工程专业、信息安全专业、智能科学与技术专业)计算机科学与工程学院软件教研室2011-10实验1Winpcap通信设计一、目的与要求1.掌握Winpcap常用API函数的使用。2.学握Winpcap包过滤的建立方法。3.学握Winpcap包过滤条件的建立方法。二、实验环境VC++IDE编程环境,WindowsXP系统三、内容和步骤1.获取网络接口列表通常,一个基于WinPcap的应用程序所要做的第一件事,就是获得适合的网络接口的列表。Libpc
2、ap中的pcap_findalldevs()®数就是实现该功能的。这个函数然回一个pcap_if结构的列表,每个元素都记录了一个接口的信息.其中,name和description以人类nJ以阅读的形式,记录了设备的信息。下而的源代码输出可用的网络接口的列表,并且在没有找到任何借口的情况下输岀错误信息:#include"pcap.h"main(){pcap_if_t*alldevs;pcap_iO*d;inti=0;charerrbuf[PCAP_ERRBUF_SIZEJ;/*取得列表*/if(pcap_fi
3、ndalldevs(&alldevs,errbuf)==-1){fprintf(stderr,nErrorinpcap_findalldevs:%s",errbuf);exit(l);/*输出列表*/for(d=alldevs;d;d=d->next)printf(H%d.%sn,++i,d->name);if(d->description)printf("(%s)'d->description);else/*Y-没有有效的描述*/printf(M(Nodescriptionavailablc)
4、nn);}if(i==0){/*Y-没有有效的接口,可能是因为没有安装WinPcap*/printf(MNointerfacesfound!MakesureWinPcapisinstalled.,r);return;}/*不再需要列表了,释放*/pcap_frccalldcvs(alldcvs);}和其他的libpeap函数一样,pcap_findalldevs(),有一个错误缓冲区(errbuf)参数.这个参数是一个字符串指针,一旦发牛错课,libpeap将会在这里填入错课描述.然后,请注意,pc
5、ap_findalldev系统下的s()函数同时也被UNIX卜的libpeap所支持,但是并不是所有的操作系统都支持“网络接口描述"(description)这一项.所以,如果我们想写一个可以移植的的应用程序,那么我们必须耍为描述为“空"(null)的悄况做好准备:遇到这种情况我们就输出一个“没有有效的描述"的消息.最后我们通过pcap_freealldevs()i^
6、数来释放接口列表.现在让我们编译并运行我们的第一个WinPcap程序.如果你使用UNIX或者Cgywin的话,你只需要以下命令:gcctes
7、taprogtestprog.c・lpcap在Windows环境屮(Y-如果你使用MicrosoftVisualC++),你需要建立一个T•程,按照"UsingWinPcapinyourprograms”一节中说明來做.不过,建议参照Winpcap开发者^(WinPcapdeveloperspack)中的例子,那些例子包括了所以配置完善的工程,以及全部你所需要的库和包含文件.假设现在已经成功编译了程序,运行如下.在WinXP_E作站上,输出结果是:1.{4E273621-5161-46C8-895A-48D
8、0E52A0B83}(RealtekRTL8029(AS)EthernetAdapter)2.{5D24AE04-C486-4A96-83FB-8B5EC6C7F430)(3ComEtherLinkPCI)就如上所示,网络接口的名称(当打开这个接口时,盂要传递这个名称给libpeap库)在windows环境下几乎是没有办法读懂的,所以输出一个描述对于你的用户来说是非常有帮助的.附注:MicrosoftVisualC++工程的设置1.下载并安装WinPcap,推荐的版本是3.()2.从hg://winpcaD
9、.Dolito.i(卜载WinPcapDeveloper'sPack并解压缩3.用MicrosoftVisualC++建立一个空工程(emptyproject)1.复制源代码2.把WinpcapDeveloper'sPack中的Includes目录添加为新的包含文件目录3.添加库wpcap.lib和wsock32.1ib。1.获取设备的高级信息上面介绍了如何获取一个设备的基本信息(比如设备名称和设备描述).实际上
此文档下载收益归作者所有