关于Winpcap

转载 2006年06月06日 10:53:00

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

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

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

4. 如果链接的时候出现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.

5. 关于winpcap的延迟参数设置多少。

     在winpcap的open_live中有一个延迟参数,主要是设置多长时间返回,当使用主线程抓包时应该设置长一点,500ms~1000ms左右,设置的过小winpcap 会抓不到包。如果是在子线程下可以设置的小一些。

6. 如果有发包的情况怎么设置。

  如果你的捕获和发包在一个线程里,就是捕获后立即发包的话,你会发现即使设置成1ms还是有不小的延迟,我感觉主要还是winpcap发包机制不是太好,你可以设置成-1,也就是捕获后立刻返回,这样会快一些(平均反映速度提高10倍左右),虽然还是会有些的延迟,但是一般的项目要求基本可以满足了。

7. 出现不停发送同一个包的情况怎么办。

    如果你在作TCP或DNS,ARP欺骗或其他需要捕获后立刻发送包的程序时可能会发现每捕获一个包就会作很多回复,而且是一样的,为什么呢?一般是因为你的pcap_next_ex或类似的抓包函数没有注意返回值,一定要注意写成if(pcap_next_ex(....)==1)的形式,不要直接用pcap_next_ex因为其可能==0这个时候会把前一个包重复抓一遍。可以参考winpcap开发手册。

CodeBlocks 13.12设置winpcap开发环境

WinPcap 4.0.1在线中文手册:http://www.ferrisxu.com/WinPcap/html/index.html   本文以CodeBlocks 13.12和WinPcap 4....
  • kxcfzyk
  • kxcfzyk
  • 2014年02月28日 09:00
  • 2836

winpcap三个源码实例,可直接使用

源码 源码一 #include "pcap.h" #define HAVE_REMOTE #include "remote-ext.h" #pragma comment(li...
  • notbaron
  • notbaron
  • 2016年11月17日 23:58
  • 30638

WINPCAP抓包并用回调函数处理包

#include "pcap.h" void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_...
  • wjeson
  • wjeson
  • 2012年02月24日 09:45
  • 3545

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

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

WinPcap笔记(1):VisualStudio2015配置WinCap

这里介绍Visual Studio2015配置WinCap环境,Visual Studio2013相同。 首先是下载与安装WinCap,这里不描述。下面是整个的配置过程。 1、新建项目 文件->新建-...
  • u012877472
  • u012877472
  • 2015年11月10日 21:22
  • 3183

winpcap的静默安装

前几天做一个小工具用到winpcap,由于有些用户系统未必安装过zh
  • dabang_007
  • dabang_007
  • 2014年11月05日 11:13
  • 1396

WinPcap过滤规则

下面对WinPcap的过滤表达式语法进行一下简要的介绍,其中关键字用黑体字表示。1) 表达式支持逻辑操作符,可以使用关键字 and、or、not对子表达式进行组合,同时支持使用小括号。2) 基于协议的...
  • caohao2008
  • caohao2008
  • 2009年01月11日 15:59
  • 6930

Winpcap网络编程三之环境配置,Eclipse配置Winpcap环境

大家好,本节为大家带来在Eclipse下配置Winpcap环境,欢迎大家收看。
  • u010467643
  • u010467643
  • 2014年10月03日 12:53
  • 2873

WinPcap笔记(7):分析数据包(1)

现在,我们可以捕获并过滤网络流量了,那就简单协议个程序分析网络数据包。 这里我们只是解析所捕获数据包的首部,打印一些数据包首部的信息。我们以UDP为例,因为UDP比较简单。 首先,应该介绍下网络数...
  • u012877472
  • u012877472
  • 2015年11月15日 08:21
  • 1358

winpcap安装使用教程

1、安装winpcap 地址:http://www.winpcap.org/install/default.htm =》安装软件 地址:http://www.winpcap.org/archive =...
  • qq_29350467
  • qq_29350467
  • 2015年06月27日 20:52
  • 6120
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Winpcap
举报原因:
原因补充:

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