这几天由于项目需求,做了一个局域网ip和MAC地址搜索的程序,程序调试完成了但是有一个问题一直困扰这我,就是软件打包后,每次都要安装WinPcap后才能用自己的程序,很是烦人,经过几天的测试终于找到了两种方法,不需要安装WinPcap。经过测试都没有问题。

方法一:经过很多次的分析,程序主要是用到了WinPcap的一个驱动文件,当安装Wincap程序后你会发现  在C:\WINDOWS\system32\drivers下面会有一个npf.sys文件,系统下的驱动,在C:\WINDOWS\system32文件夹下会发现WinPcap相关的库文件,其中有一个paket.dll库就是我在程序中用到的库。这时你可以把这个npf.sys文件拷出来,再把Wincap卸载掉,此时运行自己的程序是不能实现IP和MAC地址的搜做的,这时可以把刚才拷出来的文件npf.sys重新拷贝到C:\WINDOWS\system32\drivers下面,再运行自己的程序,你会奇迹般的发现可以正常搜索。所以这个npf.sys文件是很重要的,现在的方法是你可以在程序中编写一个copy程序,把npf.sys文件拷贝到C:\WINDOWS\system32\drivers文件夹下。这样就OK了。

方法二:方法一其实实现起来比较简单而且方便,但是还有一个更好的办法。其实通过分析发现npf.sys就是系统的一个驱动,你只要把它加载注册表中,就把这个驱动加载好了。当你把npf.sys文件拷贝到C:\WINDOWS\system32\drivers下面时系统会自动加载到注册表如下图:system32\drivers\npf.sys

现在我们怎么办那,我们也可以仿照这个自己加载这个NPF驱动程序到注册表,只是我们加载路径不是系统路径,可以把npf.sys文件拷贝到我们的工程中,通过程序创建注册表,并加载我们自己的路径驱动。这样就不用在程序打包后每次安装时先要安装WinPcap程序。

经过测试两种方法都能实现功能,只是第二种方法稍微麻烦点。还有要注意的是32位系统和64位系统用到的npf文件是不一样的。在不同系统中要加载不同的文件。

不用安装Wincap程序实现ARP广播包的发送和接收相关推荐

  1. 【网络原理】一个数据包从发送到接收在网络中经历了那些过程(详细分析)

    一个数据包从发送到接收在网络中经历了那些过程 假设学生给老师发送电子邮件,内容为:"老师您好!".从计算机A向另一台计算机B发送电子邮件,站在网络原理的角度来分析整个过程. 启动应 ...

  2. java串口发送十六进制数,本文实例为大家分享了Java实现串口通信的具体代码,供大家参考,具体内容如下1.介绍使用Java实现的串口通信程序,支持十六进制数据的发送与接收。 源码:...

    本文实例为大家分享了Java实现串口通信的具体代码,供大家参考,具体内容如下 1.介绍 使用Java实现的串口通信程序,支持十六进制数据的发送与接收. 源码:SerialPortDemo 效果图如下: ...

  3. SOCKET实现广播(BoardCast)的发送和接收 (转)

    SOCKET实现广播(BoardCast)的发送和接收 (转)[@more@] 这两天很多人在问怎么样用SOCKET实现广播(BoardCast) 正好我做过这方面的程序,这里用最简单的代码写一个广播 ...

  4. 无线发射器c语言程序代码,单片机编码 无线模块发送与接收 程序

    单片机编码 无线模块发送与接收 程序 模块型号,可在万能的某宝搜索[超再生无线模块] 接收距离:空旷200米[这是卖家说的,有待考验] 接收端在没有收到讯号,会生成间歇性尖状脉冲,data接LED负极 ...

  5. 数据包收发c语言程序,使用C在套接字编程中创建数据包以及发送和接收数据包的正确方法...

    指针pkt未在您的应用程序中定义.您有两种选择: 1)将pkt声明为正常变量 struct packet pkt; pkt.srcID = 01; .... send(sockfd, &pkt ...

  6. 使用Packet.dll和npf.sys实现原始数据包的发送和接收

    相应源码下载地址: http://download.csdn.net/source/3521479   有人可能问我为什么不直接用wpcap.dll,那个不但功能更强大还稳定.那是因为我这个功能很简单 ...

  7. 微信小程序客服接入,实现发送和接收消息

    公司多有多个小程序客服功能,实现统一接入聊天 每个小程序通知接入的通知地址不一样,但接入流程逻辑一样,在接入时标识所属小程序 netty统一发送消息到页面websocket部分,要定义好自己业务需要的 ...

  8. LoRa节点开发:5、代码详解LoRaWAN中的几种数据包(发送与接收数据)

    本文来源微信公众号[物联网思考] 本文主要结合LoRaNode SDK v4.4.2和LoRaWAN规范1.0.3来展开. 1.数据包类型 LoRaWAN规范中有不同的数据包,通过MType字段区分, ...

  9. 遇到一个在linux下无法跨网段发送接收广播包的问题

    正在进行的项目中有个网络广播包搜索设备的模块,需要在上位机发送搜索设备的XML命令,然后设备端再发真正的搜索广播包到交换机上所有的连接设备.测试部反馈了一个bug:无法跨网段搜索到设备,同一个网段内, ...

  10. Android Socket 发送广播包的那些坑

    转载文章,文章原始出处:http://ticktick.blog.51cto.com/823160/1707858 Socket广播包经常被用于局域网内的两台设备之间互相发现和消息传递,在Androi ...

最新文章

  1. 源码编译安装percona-xtrabackup-2.3.2
  2. 除了Tapd,还有哪些好用的项目管理工具,适用于100+人的大中型团队?
  3. 12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_basedir 12.24 php-fpm进程管理
  4. 移动应用发展远超Web 谷歌苹果将主导世界?联网的发展才刚刚开始
  5. 在文件中读取列表功能
  6. 实战-130W表增加字段耗时
  7. 设计模式六大原则(3)——依赖倒置原则
  8. 如何关闭子线程?征集析构函数与多线程的讨论!
  9. cas单点注销失败Error Sending message to url endpoint
  10. PSCAD创建子界面模块(放置仿真图像)
  11. 微信资源混淆AndResGuard原理
  12. matlab生成流程图,matlab做流程图
  13. IT男吃什么最利于健康
  14. matlab元胞三维数组降维,matlab34种降维典型算法
  15. Java调用 新浪微博API 接口发微博(包含js微博组件、springMVC新浪登录)详解
  16. Win10启用Linux子系统安装Ubuntu
  17. 第九周项目6-3:三色球问题
  18. c++ value categories
  19. 第5篇-分析北京租房的房源信息
  20. Sql Server sql语句中发送电子邮件

热门文章

  1. 【数字IC设计/FPGA】推挽输出和开漏输出
  2. 除去google工具栏启动的GoogleToolbarNotifier.exe进程
  3. 过滤器把样式过滤掉,无法显示样式问题, 处理方法
  4. 可验证随机函数(Verifiable Random Function, VRF)
  5. AD19导出bom表的方法(按照元件不同数值分类,重点信息突出)
  6. EasyBoot教程一:制作WIN7原版多重启动盘方法
  7. Ubuntu下载ROMS源码
  8. linux ipcs字段含义 共享内存删除 ipcs dest状态
  9. rpm安装java_【CentOS】rpm包安装Jdk
  10. Go语言开发第1课-环境搭建及简单程序入门