winpcap开发包使用中的问题总结。

原创 2006年05月23日 14:34:00

好久没写博客了,今天写点吧。

       这里主要讨论一下winpcap开发中可能遇到的问题,如果能帮助您解决一些困难,将是我的荣幸。

随便转载,转载请注明出处http://blog.csdn.net/leotangcw/

欢迎大家和我交流Email:tangchengwen@163.com

      winpcap开发包在使用中还是会有一些容易被忽略的问题的,由于这些问题可能让您在开发中产生一些莫名奇妙的结果。

    首先,我们从winpcap的环境配置中可能出现的错误开始。

    winpcap开发环境需要是windows操作系统,而且必须安装winpcap驱动才可以调试您的程序。

如果您的程序调试出现类式如下问题:can't find wpcap.dll.............等找不到动态链接库的毛病,请先下载安装winpcap    http://www.winpcap.org/install/bin/WinPcap_3_1.exe

如果编译的时候出现Cannot open include file: 'pcap.h': No such file or directory等类式找不到文件的错误,请察看是否加入了winpcap开发包的include文件夹。VC6下的加入方法是Tools->options->Directories里面加入下载的winpcap开发包解压以后的include文件夹.

如果链接的时候出现fatal error LNK1104: cannot open file "wpcap.lib"等问题,请察看是否加入了winpcap开发包的lib文件夹.VC6下的加入方法是Tools->options->Directories的lib里面加入下载的winpcap开发包解压以后的lib文件夹.

如果链接的时候出现error LNK2001: unresolved external symbol _pcap_findalldevs等问题,请察看link中是否加入了wpcap.lib.VC6下的加入方法是Project->Settings->Link的Objects/library modules里面加入wpcap.lib。

接下来是使用winpcap开发包中的一些函数的问题。

      1。用pcap_lookupnet时发现网卡的IP和掩码都是0.0.0.0并且无法捕捉。出现这个问题很多是因为使用了pcap_lookupdev这个函数。最好不要使用pcap_lookupdev这个函数,这个函数也是winpcap开发手册中推荐使用的,因为在实际使用中我们会发现很多机器在查找网卡时都能找到一个虚拟的网卡,而且这个很多时候都在第一个位置,这样向下一步提交设备句柄的时候就已经传错了。推荐您使用pcap_findalldevs返回一个网卡列表,然后找到您需要的正常网卡。这样也适合向多网卡移植。

      2。在使用了pcap_findalldevs,并且调试时发现已经是正常网卡,可是还是无法捕获。出现这个问题请您在调试时看看是否网卡的前面还有如:rpcap://这样的字段,这可能是因为您没有注意pcap_findalldevs,pcap_findalldevs_ex,pcap_open,pcap_open_live这几个函数的区别的原因,请您参考winpcap开发手册,里面有这样的字段The following formats are not allowed as 'source' strings:

  • rpcap:// [to open the first local adapter]
  • rpcap://hostname/ [to open the first remote adapter]

在上面的2种找网卡,和打开方式中,有的打开是没有rpcap://这种字段的,有的却有,有没有这个字段,后面的操作是不一样的,有的需要使用pcap_createsrcstr()来创建正确的字段,所以您一定要注意了。

    3。以上都没有问题,可是还是抓不到包,好像winpcap没有工作。请您察pcap_open或pcap_open_live函数中的延迟参数设置,一般设到1000(ms),因为如果您是在主线程下捕获,延迟设置过小(一般200ms以下就不稳定了)会使winpcap无法工作,多线程下没有这个问题,设到1都可以正常工作。

   4。在MFC下开发的问题,不要使用在Dos下开发时常用的pcap_loop而要选用pcap_next_ex等替代函数,这样才不会有回掉函数的那个问题。可以参看winpcap开发手册其中有如下说明:

 The callback-based capture mechanism of pcap_loop() is elegant and it could be a good choice in some situations. However, handling a callback is sometimes not practical -- it often makes the program more complex especially in situations with multithreaded applications or C++ classes.

恩,就写到这里吧,其他的问题现在我还没有遇到,如果有谁遇见了新的问题请发到这里,我们一起讨论。

vs2013设置winpcap开发环境

WinPcap 4.0.1在线中文手册:http://www.ferrisxu.com/WinPcap/html/index.html   本文以Visual Studio 2013和WinPcap ...
  • kxcfzyk
  • kxcfzyk
  • 2014年02月28日 12:52
  • 8049

使用vc 编译 wpcap.dll(WpcapSrc_4_0_2.zip版本)时 struct sockaddr_storage编译通不过的解决方法.

  使用vc 编译 wpcap.dll(WpcapSrc_4_0_2.zip版本)时 struct sockaddr_storage编译通不过的解决方法.1.        从http://www.m...
  • lllxy
  • lllxy
  • 2008年02月16日 22:44
  • 1677

一步一步开发sniffer(Winpcap+MFC)(一)工欲善其事,必先配环境——配置winpcap开发环境

0、说在前面的话 1) 本文将以一个初学者的角度,一步一步几乎是从0开始讲述如何完成一个基于winpcap+MFC的sniffer(嗅探器)当然我指的“0”并不是指连编程都不会,如果C/C++不知为...
  • wqc359782004
  • wqc359782004
  • 2015年04月12日 17:01
  • 1078

一步一步开发sniffer(Winpcap+MFC)(六)千呼万唤始出来,不抱琵琶也露面——将解析数据写到GUI上

最后一章是要将解析数据写的GUI上,先来回顾一下GUI长什么样,这样就对要在界面上写什么数据心中有数了,如下这两图:   可以看出,要写在GUI上的数据主要...
  • wqc359782004
  • wqc359782004
  • 2015年04月12日 17:11
  • 1040

VC6.0设置winpcap

winpcap提供两个不同级别的编程接口:一个基于libpcap的wpcap.dll,另一个是较为底层的packet.dll,对于一般的要与Unix平台的Libpcap兼容的开发者来说,使用wpcap...
  • lxhjjz
  • lxhjjz
  • 2012年08月28日 11:56
  • 3782

一步一步开发sniffer(Winpcap+MFC)(三)安得广厦千万间,先画蓝图再砌砖——搭建winpcap抓包框架

采用天朝流行的话,“由于种种原因”本人已接近一年半没有写博客了,最近回想起来,很多东西即便再小也得慢慢积累,更何况前两章之后就没有了,很多网友表示比较期待后面的文字,不能做一个太监了事,打算还是继续写...
  • litingli
  • litingli
  • 2012年03月03日 19:24
  • 15752

一步一步开发sniffer(Winpcap+MFC)(一)工欲善其事,必先配环境——配置winpcap开发环境

0、说在前面的话 1) 本文将以一个初学者的角度,一步一步几乎是从0开始讲述如何完成一个基于winpcap+MFC的sniffer(嗅探器)当然我指的“0”并不是指连编程都不会,如果C/C++不知为...
  • litingli
  • litingli
  • 2010年10月19日 12:09
  • 22029

MFC+WinPCAP自定义报文开发环境

一,建立开发环境,VS2015 + WinPCAP 1.安装WinPcap,底层驱动; 2.下载xcap库;http://download.csdn.net/download/sinat_2726...
  • sinat_27261621
  • sinat_27261621
  • 2017年11月21日 17:15
  • 45

Winpcap的安装使用方法和问题总结

Winpcap的安装使用方法    1.到http://www.winpcap.org/install/default.htm下载winpcap的安装包,然后到http://www.winpcap....
  • yu314092706
  • yu314092706
  • 2016年10月26日 18:54
  • 3743

使用WinPCAP监听并分析以太网帧

在使用WinPCAP之前,要配置安装WinPCAP,参考博客:在VS2012/VS2010中配置WinPcap开发环境 添加了以下预定义宏 #ifndef _XKEYCHECK_H #define...
  • lmj1436140682
  • lmj1436140682
  • 2017年03月29日 10:54
  • 890
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:winpcap开发包使用中的问题总结。
举报原因:
原因补充:

(最多只允许输入30个字)