`
wanjianfei
  • 浏览: 319163 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Winpcap

阅读更多

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开发手册。

分享到:
评论

相关推荐

    winpcap-413.rar

    5. 如仍有问题,可以检查系统事件查看器以获取关于WinPCAP服务的错误信息,或者在命令行中使用"sc query npf"来检查NPF服务的状态。 通过了解和使用WinPCAP,我们可以深入理解网络底层的工作机制,这对于网络管理员...

    基于winpcap的网络抓包工具

    关于winpcap的主要知识点包括: 1. **网络数据包捕获**:winpcap提供了低级别的接口,可以直接访问网络硬件,捕捉到通过网络接口卡的所有数据包,无论它们是否是发往本机的。 2. **数据包过滤**:winpcap支持BPF...

    winpcap-source.rar_winpcap 开源库_winpcap开源吗_开源 抓包工具_抓包开源

    3. 教程和书籍:网络上有不少关于WinPCAP的教程和书籍,可以帮助快速入门和提升。 总之,WinPCAP是Windows平台网络监控和分析的重要工具,其开源属性促进了技术的共享和进步。无论是网络管理员、开发人员还是安全...

    WinPcap开发包+winpcap中文帮助手册(chm)

    4. **WinPcap中文帮助手册**:这是一个`.chm`格式的帮助文档,包含了关于WinPcap API的详细说明、使用示例和常见问题解答。对于初学者来说,这是学习WinPcap开发的重要参考资料。手册涵盖了数据包捕获、过滤机制、...

    winpcap资料(源代码和讲解等等)

    本资料包包含了关于WinPCap的全面资源,包括PPT讲解、源代码示例以及详细的技术文档。 首先,让我们深入了解WinPCap的核心功能。WinPCap提供了对网络接口卡(NIC)底层驱动程序的访问,允许应用程序直接与网络硬件...

    WinPcap_docs.rar_winpcap

    本压缩包"WinPcap_docs.rar_winpcap"包含了关于WinPcap的详细文档,是学习和应用WinPcap的重要参考资料。 首先,WinPcap的核心功能包括: 1. **数据包捕获**:WinPcap能够直接访问网络接口卡(NIC)的硬件,实时...

    C++基于WinPcap抓UDP包并解析内容

    在本文中,我们将深入探讨如何使用C++编程语言和WinPcap库在Windows...如果你想要了解更多关于WinPcap的高级特性,如自定义数据包过滤规则,或者深入解析其他网络协议,建议查阅WinPcap的官方文档和相关网络编程书籍。

    WinPcap_4_1_beta.zip

    标签“WinPcap_4_1_beta.zip”是对文件内容的简要概括,强调了文件是关于WinPcap的4.1 Beta版本。 在压缩文件中,我们有两个文件: 1. "WinPcap_4_1_beta.exe":这是一个可执行文件,通常用于安装WinPcap软件。用户...

    WINPCAP 4.11(最新版)安装文件,以及源代码和SDK

    标题中的"WINPCAP 4.11(最新版)安装文件,以及源代码和SDK"表明这是一个关于WinPcap的软件包,包含了4.11版本的安装程序以及相关的源代码和开发工具包(SDK)。WinPcap是一个开源库,它是libpcap库在Windows平台上的...

    winpcap/libpcap最新源代码和中文帮助

    在提供的资源中,"winpcap4.0.1.chm"是关于winpcap V4.0.1的中文帮助文件,尽管不是最新版本,但仍然对理解winpcap的基本概念和使用方法有很大帮助。它包含了详细的API参考、示例代码和故障排查指南,是学习和使用...

    chucun.rar_install winpcap

    Pudn.com是一个分享编程资源和技术文档的网站,所以这个文件可能提供了关于WinPcap安装或使用的额外信息。 3. "zxs.txt":这个文件的含义不明确,可能包含了作者的注释、教程步骤或其他相关信息。打开文件查看具体...

    循序渐进学习使用WINPCAP(三).rar_pca_winpcap

    标题"循序渐进学习使用WINPCAP(三).rar_pca_winpcap"表明这是一个关于WINPCAP的教程系列的第三部分,主要针对PCA(Probabilistic Component Analysis,概率成分分析)在WINPCAP中的应用。WINPCAP是一个开源的网络...

    Winpcap头文件,库

    这个标题“Winpcap头文件,库”暗示了我们即将讨论的是关于Winpcap库及其相关的开发资源,包括头文件和可能的动态链接库文件。Winpcap允许程序员访问网络接口层,捕获传输中的数据包,过滤它们,并能够更改网络流量...

    winpcap抓包程序

    - 在线教程:网络上有许多关于WinPcap的教程和文章,可以帮助理解和应用。 总结来说,“winpcap抓包程序”是一个基于WinPcap库开发的工具,对于理解网络通信、排查网络问题以及进行网络安全研究具有重要作用。通过...

    使用winPCap写sniffer

    标签“winPcap”进一步明确了主题,表明我们将探讨的是关于WinPcap库的具体技术知识。 在提供的压缩包文件中,"使用WinPCap编写Sniffer程序.ppt"可能是一个PowerPoint演示文稿,通常包含逐步的教程或讲解,指导用户...

    format_cap.rar_cap pc_format_c_format_cap_winpcap_winpcap c

    标题中的"format_cap.rar_cap pc_format_c_format_cap_winpcap_winpcap c"涉及到的是关于WinPCap格式的捕获(cap)文件的解析和处理,主要关注的是在Windows平台上如何使用C语言来操作这种文件类型。WinPCap是...

    WinPcap网络抓包封装工具

    `宝贝鱼站长网.url`看起来是一个网站链接,可能指向一个资源丰富的网站,提供关于WinPcap的教程、使用示例或其他相关资源。访问这个链接可以获取更多关于WinPcap的使用技巧和最新信息。 总之,WinPcap在网络监控、...

    WinPcap_jb51.net.rar

    - `jb51.net.txt`:可能是jb51.net网站提供的关于WinPcap的使用教程或说明文档,帮助用户理解和使用WinPcap。 - `去脚本之家看看.url`和`服务器软件.url`:这两个文件是URL快捷方式,分别指向“脚本之家”和一个...

    WinPcap中文文档

    WinPcap中文文档是一系列关于WinPcap技术的资料集合,涵盖了从基础概念到高级应用的广泛内容。WinPcap是Windows平台上的一个开源库,主要用于网络封包捕获和网络流量分析。它允许程序员直接访问网络接口层,提供对...

    wireshark_winpcap_filter_learning.zip_winpcap filter_wireshark

    在这个“wireshark_winpcap_filter_learning.zip”压缩包中,包含了一份关于WinPCap过滤器和Wireshark过滤表达式的教程,旨在帮助用户深入理解如何高效地使用这两款工具。 `winPcap.chm`是WinPCap的帮助文档,它...

Global site tag (gtag.js) - Google Analytics