好的,伙计们,这不是标题可能暗示的通常容易回答的问题......
我需要从运行 Windows 的机器(从 XP 到 Server2012)获取 MAC 地址。我可以使用以下选项:
1) getmac - 一般都很好,它返回 MAC 地址的格式也适合我,但它在过去给我带来了问题。
2) WMIC - 一般也很好,但过去也给我带来了问题,
而且它的性能落后(尤其是在低规格机器上)。
3) ipconfing - 从命令输出中检索它的传统方式。可以工作,但如果存在多个接口,解析输出可能会很麻烦。
所以问题如下。为了获得机器的 MAC 地址,上述所有方法的最佳替代方法是什么。请记住,我将通过 shell 脚本调用任何实用程序(无论这增加了等式),并且我正在几个不同的 Windows 版本(从专业版到嵌入式 POS)上进行部署。
Powershell 显然是不可能的,因为 XP 不支持它。另外我想避免使用 WMIC 的原因是 1)我遇到的安装错误(导致重大问题)和 2)因为某些 Windows 版本(例如 XP 嵌入式)不包含它。
我尝试使用 ARP 表来获取它,但据我所知,它不会列出本地机器的 MAC 地址。
欢迎任何有用的提示或想法。
您可以使用 VBScript。http://www.robvanderwoude.com/vbstech_network_mac.php上的代码可以修改以获得您需要的信息。
您也可以使用
-a
开关和machine name
(如果知道)它可能有点超出您可以做的范围,但如果您拥有所有机器的 IP,它就是完整的证明和简单的。
转到核心交换机/路由器,或在同一子网中具有接口的任何设备。如果您无权访问路由器/交换机,则可以从同一子网中的 Windows 框进行操作。
ping 所有 IP 或执行 ping 扫描,然后打印 arp 表。此时,您所要做的就是将其复制并粘贴到您最喜欢的文本操作器(notepadd++、excel、linux 等)中,然后过滤掉您不需要的行。
无需依赖并不总是兼容或随机失败的讨厌的 windows cmdlet,这种方法适用于所有设备,而不仅仅是 windows。
Linux 有一个很棒的实用程序
arp-scan
,它可以扫描您的网络并生成一个包含 MAC 地址及其相应 IP 地址的表。遗憾的是,它不包含在 Knoppix 中。我不知道其他现场发行版。