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

winpcap 发包工具 源码较为简单,只有四个文件,详细的实现可以参看工程代码,结合百度,对初学者来说也很容易掌握。在图中指定的网卡上,用wireshark抓包,可以看到该网卡发送的所有的数据包。此下载地址中有多个工程,其中的sendpack即此文中的发包项目。命令行下输入sendpack.exe test.pcap。sendpack.exe:源码编译出来的可执行程序。test.pcap:需要发送的数据包抓包文件。 阅读详情

 

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

 

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

 

随便转载,转载请注明出处http://blog.youkuaiyun.com/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.

 

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

 

 

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/leotangcw/archive/2006/05/23/751132.aspx

 

 

 

 

 

 

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

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

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

 

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

 

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

 

http://blog.youkuaiyun.com/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开发手册。

 

好了,先写到这里吧,下次继续!

 

 

 

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/leotangcw/archive/2006/05/29/759810.aspx

 

Visual Studio 配置Winpcap环境 详细 Start 本文以Visual Studio 2013和WinPcap 4.1.3作为示例,对32位和64位Win7通用 1、下载并安装WinPcap运行库 http://www.winpcap.org/install/default.htm 一些捕包软件会捆绑安装WinPcap,MentoHust也会附带WinPcap,这种情况下一般可以跳过此步。 2、下载 阅读详情

相关推荐

Qt中配置Winpcap

1. 下载WinPcap_4_1_3.exe 驱动。 官网:http://www.winpcap.org/install/default.htm 2. 下载开发包 WpdPack_4_1_2.zip 。官网:http://www.winpcap.org/devel.htm  (注意别下载错了,要的 Developer's pack 不是Sourse Code) 安装WinPcap_4_1_

谁谁谁的专栏 6396

VS2019配置WinPcap开发

首先需要安装WinPcap运行库 下载WinPcap开发包,并解压 vs2019新建一个工程 打开工程调试属性 添加包含路径(Include和Lib目录)包含目录和库目录 添加wpcap.lib和ws2_32.lib两个库 添加WPCAP和HAVE_REMOTE宏 注意 此处配置的为x64,在vs中使用是需要,否则会出现找不到pcap.h的情况 由于配置的是x64,因此在第一步包含Lib目录的时候需要包含x64的目录,如果是win32就只需要包含(WpdPack\Lib)即

Mr_atopos的博客 5423

使用Winpcap示例程序的时候,会出现很多错误。

WINPCAP编程环境设置2008-05-19 12:41一、WINPCAP编程环境设置在正式WinPcap编程之前,要配置运行环境。1、运行环境设置Win32 平台下WinPcap应用程序需要以下四个动态链接库才能正常运行:wpcap.dll Packet.dll WanPacket.dll pthreadVC.dll这四个动态链接库在WinPcap驱动程序里。如果没有这

Meinherz的专栏 5087

VS2022配置WinPcap开发

在“预处理器定义”处修改为“WPCAP;1.首先下载安装 winpcap.exe,http://www.winpcap.org/install/default.html。然后在“附加依赖项”处,添加wpcap.lib和ws2_32.lib两个库,如图所示:(前面的用这两个替换掉,后面的不要动)接下来修改“包含目录”和“库目录”,包含目录修改为:D:\WpdPack\Include;winpcap 官网:http://www.winpcap.org/

m0_63002183的博客 6072

python3使用winpcap

python3使用winpcap关于winpcap的简单介绍winpcap抓包介绍(各函数及其参数)对于上面的示例代码的介绍 关于winpcap的简单介绍 winpcap的历史说起来就比较麻烦了, 简单来说,他使用unix下跨平台 抓包工具libpcap 往上封装而成,感兴趣的可以自行查询,同级别的还有npcap,但是,npcap相对来说比winpcap优势更大,哈哈,从wireshark3.0开...

weixin_43673352的博客 6880

VC++开发winpcap封包捕获程序的准备工作

VC++开发winpcap封包捕获程序的准备工作;

bcbobo21cn的专栏 545

Winpcap 开发教程

一、Winpcap开发包能干嘛? 获取可用网卡的列表 获取网卡的信息,包括数量,名字,地址 嗅探抓包 向网络发数据包 将从网卡获取的网络流保存到磁盘 对已经抓取的包进行使用高级语言进行过滤 跨平台,在windows下用wInpcap开发的网络工具可以在Unix重新编译使用。 二、Winpcap使用到的结构体三、使用方法3.1 创建pcap_t对象 函数有: pcap_t * pcap_open_

jmhIcoding 2548

WinPcap网络开发包完整资源详解

WinPcap 是一个专为 Windows 平台设计的网络数据包捕获与发送开发库,其底层基于著名的 libpcap/WinPcap 架构。该库通过与操作系统内核中的网络驱动交互,实现了对网络流量的高效捕获和发送功能。WinPcap 的主要功能包括:数据包捕获:能够监听并捕获经过本地网络接口的数据包。数据包发送:支持将构造的数据包注入网络中。BPF 过滤机制:利用 Berkeley Packet Filter(BPF)语法,实现对捕获流量的高效过滤。混杂模式支持。

weixin_35756637的博客 886

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

好久没写博客了,今天写点吧。       这里主要讨论一下winpcap开发中可能遇到的问题,如果能帮助您解决一些困难,将是我的荣幸。随便转载,转载请注明出处http://blog.youkuaiyun.com/leotangcw/欢迎大家和我交流Email:tangchengwen@163.com      winpcap开发包在使用中还是会有一些容易被忽略的问题的,由于这些问题可能让您在开

leotangcw的专栏 1万+

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

包括winpcap头文件,源文件,lib及WinPcap中文帮助手册

利用WinpCap 编写抓包源码附带WpdPack开发包

利用WinpCap 编写抓包源码附带WpdPack开发包

《Winpcap的安装使用方法》及《winpcap开发包使用中的问题总结》

转载《Winpcap的安装使用方法》及《winpcap开发包使用中的问题总结》 2009-01-25 16:57 Winpcap的安装使用方法    1.到http://www.winpcap.org/install/default.htm下载winpc

1万+

winpcap驱动及开发包

什么是WinPcap WinPcap是一个基于Win32平台的,用于捕获网络数据包并进行分析的开源库. 大多数网络应用程序通过被广泛使用的操作系统元件来访问网络,比如sockets。 这是一种简单的实现方式,因为操作系统已经妥善处理了底层具体实现细节(比如协议处理,封装数据包等等),并且提供了一个与读写文件类似的,令人熟悉的接口。 然而,有些时候,这种“简单的方式”并不能满足任务的需求,因为有些应用程序需要直接访问网络中的数据包。也就是说,那些应用程序需要访问原始数据包,即没有被操作系统利用网络协议处理过的数据包。 WinPcap产生的目的,就是为Win32应用程序提供这种访问方式; WinPcap提供了以下功能 捕获原始数据包,无论它是发往某台机器的,还是在其他设备(共享媒介)上进行交换的 在数据包发送给某应用程序前,根据用户指定的规则过滤数据包 将原始数据包通过网络发送出去 收集并统计网络流量信息 以上这些功能需要借助安装在Win32内核中的网络设备驱动程序才能实现,再加上几个动态链接库DLL。 所有这些功能都能通过一个强大的编程接口来表现出来,易于开发,并能在不同的操作系统上使用。这本手册的主要目标是在一些程序范例的帮助下,叙述这些编程接口的使用。 如果您现在就想开始摸索这些功能,您可以直接进入 WinPcap用户手册. 哪些程序在使用WinPcap WinPcap可以被用来制作许多类型的网络工具,比如具有分析,解决纷争,安全和监视功能的工具。特别地,一些基于WinPcap的典型应用有: 网络与协议分析器 (network and protocol analyzers) 网络监视器 (network monitors) 网络流量记录器 (traffic loggers) 网络流量发生器 (traffic generators) 用户级网桥及路由 (user-level bridges and routers) 网络入侵检测系统 (network intrusion detection systems (NIDS)) 网络扫描器 (network scanners) 安全工具 (security tools) 什么是WinPcap做不到的 WinPcap能 独立地 通过主机协议发送和接受数据,如同TCP-IP。这就意味着WinPcap不能阻止、过滤或操纵同一机器上的其他应用程序的通讯:它仅仅能简单地"监视"在网络上传输的数据包。所以,它不能提供类似网络流量控制、服务质量调度和个人防火墙之类的支持

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

winpcap开发包在使用中还是会有一些容易被忽略的问题的,由于这些问题可能让您在开发中产生一些莫名奇妙的结果。 首先,我们从winpcap的环境配置中可能出现的错误开始。 winpcap开发环境需要是windows操作系统,而且必须安装winpcap驱动才可以调试您的程序。如果您的程序调试出现类式如下问题:cant find wpcap.dll.............

拾贝人 1455

Oracle集群管理-19.3升级19.18 opatchauto总结(java报错,resume oneoffs缺失目录)

t. (那个认为补丁已经打上了,但是oneoffs目录里面没有。将安装包文件的权限全部改成777.就继续执行了上述命令 ,此时使用opatch lsinv也是报错 ,在正常执行opatchauto apply。1 创建目录,存放补丁包,并赋予权限。于是使用如下命令对补丁进行回滚。

oradbm的博客 1415

Pico设备手势追踪实战:5步搞定MRTK3手部模型与UI交互配置

本文详细介绍了在Pico设备上使用MRTK3实现手势追踪的5个关键步骤,包括环境配置、手部模型冲突解决、射线交互优化、UI交互配置及性能优化。通过实战案例和代码示例,帮助开发者快速解决MR开发中的常见问题,提升混合现实应用的交互体验。

onion的博客 497

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

这里主要讨论一下winpcap开发中可能遇到的问题,如果能帮助您解决一些困难,将是我的荣幸。随便转载,转载请注明出处http://blog.youkuaiyun.com/leotangcw/欢迎大家和我交流Email:tangchengwen@163.comwinpcap开发包使用中的问题总结(之一):http://blog.youkuaiyun.com/leotangcw/archive/2006/05

leotangcw的专栏 8576

麒麟V10 ARM环境离线部署MySQL:从依赖缺失到服务自启的完整避坑指南

本文详细介绍了在麒麟V10 ARM环境下离线部署MySQL的完整流程,包括依赖缺失解决方案、目录配置、服务自启设置及性能调优。特别针对国产操作系统和ARM架构的兼容性问题,提供了实用的避坑指南和优化建议,帮助用户高效完成MySQL部署与维护。

weixin_28741413的博客 408

winpcap安装使用教程

1、安装winpcap 地址:http://www.winpcap.org/install/default.htm =》安装软件 地址:http://www.winpcap.org/archive =》下载package开发包wpdPack a) 执行安装包,这样你的机子就能运行winpcap程序了 b)解压开发包,在VC6.0的Tools-->Option-->Directories的I

qq_29350467的博客 5万+

[kriging](一)网上下载的kriging克里金的C++程序的初步调试

笔者在网上下载了一份克里金的C++程序,水平有限,正在逐步地调试中。 初步 克里金法现在在许多软件都已经有集成了,据笔者所知: arcgis : 看过有的arcgis培训视频里面简略介绍了里面的插值方法,有克里金。 surfer :笔者用过这个,效果很好。 gocad :听说有 landmark &jason :研究生时候用的专业的石油物探软件,里面有克里金法,万恶的开始。 pykrig...

FOREST优快云 5609

STK新手必看:用700km轨道卫星,5步搞定对地覆盖分析报告

本文为STK新手提供700km轨道卫星对地覆盖分析的5步实操指南,涵盖卫星创建、传感器配置、区域定义、计算设置及报告生成全流程,特别标注常见操作误区与优化技巧,帮助用户快速掌握STK覆盖性分析核心方法。

weixin_42546392的博客 374
上一篇: 位段操作问题
下一篇: 【转】用winpcap实现局域网DNS欺骗之一(基础知识)
code09
博客等级 码龄18年 31粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值