找回密码
 加入
搜索
查看: 2205|回复: 9

[网络通信] 请教,如何获取当前网关IP地址的MAC地址?

    [复制链接]
发表于 2018-1-10 14:42:56 | 显示全部楼层 |阅读模式
看到例子都是几乎都是获取本机IP地址和MAC地址的,没留意到有相关的针对IP地址,提前其MAC地址的方法?

贴个例子是获取网关ip地址的:
MsgBox(0,0,_Gateway())
Func _Gateway()
        Dim $IPGateway
        Dim $objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
        Dim $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = TRUE", "WQL", 0x10 + 0x20)
        For $objItem In $colItems
                $IPGateway = $objItem.DefaultIPGateway(0)
                If StringInStr($IPGateway, ".") > 0 Then ExitLoop
                Next
                If StringRegExpReplace($IPGateway, '(\d+\.){12}', '') = "" Then
                MsgBox ( 0 , "ERROR" , "无法获取本地网关,请检查网线是否连接且已通过认证" )
                Else
                Return StringRegExpReplace($IPGateway, '(\d+\.){12}', '')
                        EndIf
EndFunc
发表于 2018-1-10 20:06:01 | 显示全部楼层
本帖最后由 229989799 于 2018-1-10 20:08 编辑

ping 192.168.1.1    //ping网关,使本机与之产生通信,从而缓存对方的MAC
arp -a                     //查看arp缓存的IP/MAC表

这是比较笨 的办法。利用cmd回显的办法
如果不在一个局域网基本上看不到对方的MAC地址
 楼主| 发表于 2018-1-10 20:50:19 | 显示全部楼层
ping 192.168.1.1    //ping网关,使本机与之产生通信,从而缓存对方的MAC
arp -a                     // ...
229989799 发表于 2018-1-10 20:06



这的确是一个获取MAC地址的方法,

我的打算是每3分钟监测一次的,假设每次都开和小黑窗(CMD)出来获取,对屏幕就有干扰了
应该也有思路可以隐藏小黑窗,但这应该不是一个终极解决办法,

难道Autoit没有方法或者函数,直接对一个IP地址获取其MAC地址了。。。
发表于 2018-1-10 22:11:59 | 显示全部楼层
发送ARP数据包
发表于 2018-1-10 22:25:52 | 显示全部楼层
_API_Get_NetworkAdapterMAC
 楼主| 发表于 2018-1-11 10:32:54 | 显示全部楼层
_API_Get_NetworkAdapterMAC
zch11230 发表于 2018-1-10 22:25



感谢感谢,试验成功了。。。
发表于 2018-1-11 11:33:33 | 显示全部楼层
学习一下 ,貌似不错
发表于 2018-1-11 11:33:36 | 显示全部楼层
学习一下 ,貌似不错
发表于 2018-1-12 17:28:06 | 显示全部楼层
学习一下,5#方法不错
发表于 2018-1-16 23:06:03 | 显示全部楼层
批处理好像也可以获取网关mac
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-1 07:52 , Processed in 0.074453 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表