不用安装Wincap程序实现ARP广播包的发送和接收
这几天由于项目需求,做了一个局域网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广播包的发送和接收相关推荐
- 【网络原理】一个数据包从发送到接收在网络中经历了那些过程(详细分析)
一个数据包从发送到接收在网络中经历了那些过程 假设学生给老师发送电子邮件,内容为:"老师您好!".从计算机A向另一台计算机B发送电子邮件,站在网络原理的角度来分析整个过程. 启动应 ...
- java串口发送十六进制数,本文实例为大家分享了Java实现串口通信的具体代码,供大家参考,具体内容如下1.介绍使用Java实现的串口通信程序,支持十六进制数据的发送与接收。 源码:...
本文实例为大家分享了Java实现串口通信的具体代码,供大家参考,具体内容如下 1.介绍 使用Java实现的串口通信程序,支持十六进制数据的发送与接收. 源码:SerialPortDemo 效果图如下: ...
- SOCKET实现广播(BoardCast)的发送和接收 (转)
SOCKET实现广播(BoardCast)的发送和接收 (转)[@more@] 这两天很多人在问怎么样用SOCKET实现广播(BoardCast) 正好我做过这方面的程序,这里用最简单的代码写一个广播 ...
- 无线发射器c语言程序代码,单片机编码 无线模块发送与接收 程序
单片机编码 无线模块发送与接收 程序 模块型号,可在万能的某宝搜索[超再生无线模块] 接收距离:空旷200米[这是卖家说的,有待考验] 接收端在没有收到讯号,会生成间歇性尖状脉冲,data接LED负极 ...
- 数据包收发c语言程序,使用C在套接字编程中创建数据包以及发送和接收数据包的正确方法...
指针pkt未在您的应用程序中定义.您有两种选择: 1)将pkt声明为正常变量 struct packet pkt; pkt.srcID = 01; .... send(sockfd, &pkt ...
- 使用Packet.dll和npf.sys实现原始数据包的发送和接收
相应源码下载地址: http://download.csdn.net/source/3521479 有人可能问我为什么不直接用wpcap.dll,那个不但功能更强大还稳定.那是因为我这个功能很简单 ...
- 微信小程序客服接入,实现发送和接收消息
公司多有多个小程序客服功能,实现统一接入聊天 每个小程序通知接入的通知地址不一样,但接入流程逻辑一样,在接入时标识所属小程序 netty统一发送消息到页面websocket部分,要定义好自己业务需要的 ...
- LoRa节点开发:5、代码详解LoRaWAN中的几种数据包(发送与接收数据)
本文来源微信公众号[物联网思考] 本文主要结合LoRaNode SDK v4.4.2和LoRaWAN规范1.0.3来展开. 1.数据包类型 LoRaWAN规范中有不同的数据包,通过MType字段区分, ...
- 遇到一个在linux下无法跨网段发送接收广播包的问题
正在进行的项目中有个网络广播包搜索设备的模块,需要在上位机发送搜索设备的XML命令,然后设备端再发真正的搜索广播包到交换机上所有的连接设备.测试部反馈了一个bug:无法跨网段搜索到设备,同一个网段内, ...
- Android Socket 发送广播包的那些坑
转载文章,文章原始出处:http://ticktick.blog.51cto.com/823160/1707858 Socket广播包经常被用于局域网内的两台设备之间互相发现和消息传递,在Androi ...
最新文章
- 源码编译安装percona-xtrabackup-2.3.2
- 除了Tapd,还有哪些好用的项目管理工具,适用于100+人的大中型团队?
- 12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_basedir 12.24 php-fpm进程管理
- 移动应用发展远超Web 谷歌苹果将主导世界?联网的发展才刚刚开始
- 在文件中读取列表功能
- 实战-130W表增加字段耗时
- 设计模式六大原则(3)——依赖倒置原则
- 如何关闭子线程?征集析构函数与多线程的讨论!
- cas单点注销失败Error Sending message to url endpoint
- PSCAD创建子界面模块(放置仿真图像)
- 微信资源混淆AndResGuard原理
- matlab生成流程图,matlab做流程图
- IT男吃什么最利于健康
- matlab元胞三维数组降维,matlab34种降维典型算法
- Java调用 新浪微博API 接口发微博(包含js微博组件、springMVC新浪登录)详解
- Win10启用Linux子系统安装Ubuntu
- 第九周项目6-3:三色球问题
- c++ value categories
- 第5篇-分析北京租房的房源信息
- Sql Server sql语句中发送电子邮件
热门文章
- 【数字IC设计/FPGA】推挽输出和开漏输出
- 除去google工具栏启动的GoogleToolbarNotifier.exe进程
- 过滤器把样式过滤掉,无法显示样式问题, 处理方法
- 可验证随机函数(Verifiable Random Function, VRF)
- AD19导出bom表的方法(按照元件不同数值分类,重点信息突出)
- EasyBoot教程一:制作WIN7原版多重启动盘方法
- Ubuntu下载ROMS源码
- linux ipcs字段含义 共享内存删除 ipcs dest状态
- rpm安装java_【CentOS】rpm包安装Jdk
- Go语言开发第1课-环境搭建及简单程序入门