请教,如何获取当前网关IP地址的MAC地址?
看到例子都是几乎都是获取本机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 本帖最后由 229989799 于 2018-1-10 20:08 编辑
ping 192.168.1.1 //ping网关,使本机与之产生通信,从而缓存对方的MAC
arp -a //查看arp缓存的IP/MAC表
这是比较笨 的办法。利用cmd回显的办法
如果不在一个局域网基本上看不到对方的MAC地址 ping 192.168.1.1 //ping网关,使本机与之产生通信,从而缓存对方的MAC
arp -a // ...
229989799 发表于 2018-1-10 20:06 http://www.autoit3.cn/images/common/back.gif
这的确是一个获取MAC地址的方法,
我的打算是每3分钟监测一次的,假设每次都开和小黑窗(CMD)出来获取,对屏幕就有干扰了
应该也有思路可以隐藏小黑窗,但这应该不是一个终极解决办法,
难道Autoit没有方法或者函数,直接对一个IP地址获取其MAC地址了。。。 发送ARP数据包 _API_Get_NetworkAdapterMAC _API_Get_NetworkAdapterMAC
zch11230 发表于 2018-1-10 22:25 http://www.autoit3.cn/images/common/back.gif
感谢感谢,试验成功了。。。 学习一下 ,貌似不错 学习一下 ,貌似不错 学习一下,5#方法不错 批处理好像也可以获取网关mac
页:
[1]