【发布时间】:2014-11-24 21:56:33
【问题描述】:
我需要编写一个小脚本来仅获取特定 IP 地址的 MAC 地址。所以,你可以使用类似的东西
arp -a 192.168.x.x | FIND "192.168.x.x"
但您的结果仍将类似于:
Interface: 192.168.x.x --- 0x10
192.168.x.x 00-00-00-00-00-00 dynamic
不知何故,使用 REGEX 或其他高级解析方法,我想减少它以回显“00-00-00-00-00-00”。我可以使用以下内容,但我想要更干净的东西:
set obj_exec = obj_shell.Exec("%comspec% /C arp -a 192.168.x.x | FIND "192.168.x.x" > c:\temp\tmp_gatewayMAC.txt")
set obj_FSO = createobject("Scripting.FileSystemObject")
set obj_file = obj_FSO.opentextfile("c:\temp\tmp_gatewayMAC.txt", 1)
do until obj_file.AtEndOfStream
str_line = obj_file.readline
if instr(str_line, "dynamic") > 0 then
str_MACaddress = str_line
end if
loop
str_MACaddress = replace(str_MACaddress, "dynamic","")
str_MACaddress = replace(str_MACaddress, "192.168.x.x","")
str_MACaddress = replace(str_MACaddress, " ","")
str_MACaddress = trim(str_MACaddress)
vbscript.echo(str_MACaddress)
暂时忽略我们如何确定网关 IP 地址,因为我会为此提出一个独立的方法。理想情况下,我可以运行(但找不到)其他一些实用程序,例如 ARP,但它只返回 MAC。
【问题讨论】:
标签: vbscript