Winpcap的安装使用方法

1.到http://www.winpcap.org/install/default.htm下载winpcap的安装包,然后到http://www.winpcap.org/devel.htm程序员开发包。
   2.执行安装包,这样你的机子就能运行winpcap程序了。
   3.解压开发包,在VC6.0的Tools-->Option-->Directories的Include fils 和library files加入winpcap的include和lib目录。
   4.开始编写wpcap程序。

vs2005:
第一步:下载WinPcap的安装包;有不同操作系统环境下的包,我下的是win32版本的。下载地址:www.winpcap.org;最新的Release版本是4.0.1的,最高的版本一般是Beta的。这个安装包主要是注册一个wpcap.dll的库到操作系统中。必须安装,如果不安装,在运行例子的时候会弹出窗口提示,找不到wpcap.dll文件;
第二步:到上面的网站下载它的开发包,包括一些头文件和库文件;解压到自己指定的目录中;目录中还有HTML格式的说明文档,用于自己学习比较方便;
第三步:设置VS2005;1)设置环境目录;在菜单:工具->选项;弹出的选项窗体左边点击:项目和解决方案->VC++目录;在右边:“显示以下内容的目录”标签下面的下拉框中找到“包含文件”,然后对应到第二步下载开发包的Include目录;在同一下拉框中找到“库文件”,然后对应到第二步下载开发包的lib目录;2)设置编译条件;在项目属性页中:配置属性->C/C++->预处理器->预处理器定义,增加;WPCAP;HAVE_REMOTE;每一个预定义符用";"隔开;在项目属性页中:配置属性->链接器->命令行->附加选项对应的文本框中增加:“wpcap.lib ws2_32.lib”;

第四步:非必要步骤;有的时候可能会有些意外错误;比如找不到u_char类型等;我的解决办法是加上
#ifndef WIN32
#include <sys/socket.h>
#include <netinet/in.h>
#else
#include <winsock.h>
#endif

=================================================================================

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

这里主要讨论一下winpcap开发中可能遇到的问题。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.

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

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

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

winpcap开发包使用中的问题总结(之一):

http://blog.csdn.net/leotangcw/archive/2006/05/23/751132.aspx

最近使用winpcap发包又发现了点毛病,这里贴出来。

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

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

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

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

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

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

Winpcap的安装使用方法和问题总结相关推荐

  1. 安装wireshark中npcap无法安装以及winpcap无法安装(已解决【两个方法】)

    关于安装wireshark中nacap一直无法安装以及wincap无法安装解决方法[两个方法] 1.安装wireshark没有问题,中途弹出安装npcap有问题,试过网上各种解决方法依然无法解决,电脑 ...

  2. java jdk 1.8 配置_Java开发环境jdk 1.8安装配置方法(Win7 64位系统/windows server 2008)...

    什么是jdk jdk是什么呢?jdk的是java development kit的缩写,意思是java程序开发的工具包.也可以说jdk是java的sdk. 目前的JDK大致分三个大版本: Java S ...

  3. mysql数据库解压安装教程_MySQL数据库之windows 10下解压版MySql安装配置方法教程...

    本文主要向大家介绍了MySQL数据库之windows 10下解压版MySql安装配置方法教程 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. windows 10 下安装解压版的 ...

  4. python3.6.2怎样安装,python 3.6.2 安装配置方法图文教程

    python 3.6.2 安装配置方法图文教程 Windows下Python(pip)环境搭建(3.6)图解,供大家参考,具体内容如下 1.下载最新的Python安装:3.6.2 2.安装时不要选择默 ...

  5. jdk是什么?jdk1.8安装配置方法

    2019独角兽企业重金招聘Python工程师标准>>> jdk是什么呢?jdk的是java development kit的缩写,意思是java程序开发的工具包.也可以说jdk是ja ...

  6. symfony 2 app.php,Symfony2安装的方法(2种方法)

    本文详细讲述了Symfony2安装的方法.分享给大家供大家参考,具体如下: 一.Composer安装Symfony Composer安装Symfony方法在前面的文章<Symfony之十分钟入门 ...

  7. Ubuntu 16.04+GTX970 黑屏无法安装解决方法

    Ubuntu 16.04+GTX970 黑屏无法安装解决方法 参考http://www.linuxidc.com/Linux/2017-01/139318.htm http://blog.scienc ...

  8. 利用Kickstart安装的方法

    LINUX使用Kickstart进行安装 一.应用   1.无人值守安装   2.批量自动安装 二.方法   1.使用Kickstart进行安装的过程     1>.创建Kickstart配置文 ...

  9. mysql数据库64免安装_MYSQL数据库mysql 5.7.18 winx64 免安装 配置方法

    <MysqL数据库MysqL 5.7.18 winx64 免安装 配置方法>要点: 本文介绍了MysqL数据库MysqL 5.7.18 winx64 免安装 配置方法,希望对您有用.如果有 ...

最新文章

  1. 忘记root密码如何处理
  2. 10 迭代器与生成器
  3. 网络流-EK求最大流
  4. 哈工大讯飞联合实验室发布少数民族多语言预训练模型CINO
  5. C++结构体字节对齐
  6. 【leetcode】722. Remove Comments
  7. 积分简明笔记-第二类曲线积分的类型
  8. python书在线阅读_这7本O’Reilly推出的免费Python电子书,够你看了
  9. 10006---当当架构部张亮:从码农到大牛,技术与心境的双重提升
  10. 请求数据应该放在Created还是Mounted
  11. 来一场说走就走的旅行的意义
  12. https://github.com/Wechat-Group/WxJava 使用记录
  13. amd的cpu跑python_Windows下用cpu模式跑通目标检测py-faster-rcnn 的demo.py
  14. web前端之CSS3
  15. 电子邮件服务器名设置方法,电子邮件 outlook express 怎样设置电子邮件服务器名?...
  16. PCL学习笔记1 —— PCL库简要说明
  17. 用户数据报协议---UDP协议【详解】
  18. java中转义字符的学习---(多看几遍就会了系列)
  19. 基于JAVA学院学生论坛计算机毕业设计源码+系统+数据库+lw文档+部署
  20. 如何做好一名项目经理

热门文章

  1. 技巧:分享两个微信群加粉方法
  2. 爱立信声援华为中兴 称贸易壁垒应当被摒弃
  3. mac安装使用subversion(svn)
  4. redis设置远程链接
  5. 8小时工作,24小时思考
  6. 启动oracle时ORA-04031错误的一种解决方法
  7. win10下CH340模块下载stc89c52程序
  8. dd与cp的区别,以及rootfs.ext4写入SD卡
  9. 推荐个将其他文档转为pdf的软件:Nitro PDF Creator
  10. 常用开源监控系统分析推荐(必备知识)