C#根据本地IP获取MAC地址(Windows API SendARP函数方式)|C/S开发框架
C#源码C# 全选
测试C# 全选
SendARP这个函数用来发送ARP数据包并在定义的MAC缓冲区中返回定义的IP对应的MAC地址 SendARP( IPAddr DestIP, IPAddr SrcIP, PULONG pMacAddr, PULONG PhyAddrLen ); 第一个参数是IP地址的网络字节顺序,而不是一个指针,当初我就是赋值成指针而使得获取不了MAC地址。 第二个参数填0就可以 第三个参数是MAC缓冲区指针 第四个参数是一个指向一个DWORD型数值为6的指针 返回值: 31 说明对方没有开机,我们的函数检测不到它, 1784 说明的给函数的最后一个参数的值是0,或你的给的值与你给的缓存区大小不符合。 如果返回31不在线,则最后一个参数指针指向的值赋值为0 该函数本质上就是向目标主机发送一个ARP请求包,然后得到应答包来更新MAC,但是ARP请求包里的发送端IP和MAC是本机的实际IP和MAC,这样对方arp -a查看缓存表时记录里就有我的IP-MAC映射记录,容易知道有人在扫描其机器,或者是ARP病毒也可能。 解决该函数问题就是自己伪造发包,但是MAC地址必须对,否则应答包不会发送到本机~ ![]() 扫一扫加作者微信 ![]() ![]()
参考文档:
C#获取本地的IP地址 C# 获取宽带连接(PPPOE拨号)的IP地址 C#根据第三方提供的IP查询服务获取公网外网IP地址 百度地图API应用 - 根据地址查询经纬度-C/S开发框架 C# DevExpress.XtraCharts获取调色板系统默认颜色-C/S开发框架 C#获取Windows10屏幕的缩放比例-C/S开发框架 C#.NET 消息机制-C/S开发框架 .NET,VS,C#三者关系-C/S开发框架 C# System.ServiceProcess类操作Windows服务,判断服务状态,启动停止服务-C/S开发框架 C#.NET学习路线导引-C/S开发框架 C# 搭建一个简单的WebApi项目,c# webapi-C/S开发框架 VSCode配置C#运行环境教程,vscode配置c#-C/S开发框架 百度地图API - 地址标注与位置显示(C#.NET)-C/S开发框架 C#网络工具类NetTools,获取IP/MAC地址|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |