0

只是想问一下是否有办法将本地机器的 Mac 地址作为字符串获取。我需要将本地机器的 mac 地址保存到域类中。我尝试使用此代码来获取我的 Mac 地址:

String address = "ifconfig".execute().text()

但是这一行还返回了很多关于我的 ip 地址的详细信息,我需要得到的只是在子字符串“HWaddr”之后找到的 Mac 地址。我在想是否可以使用正则表达式提取此子字符串,但我不知道该怎么做。

4

2 回答 2

5

您可以使用 获取接口的 MAC 地址java.net.NetworkInterface。请注意,可能有多个硬件网络接口,因此可能有多个 MAC 地址。此外,大多数机器都会有至少一个没有硬件地址的接口:环回接口。

这将获得所有 MAC 地址作为字符串的列表,包括没有 MAC 地址的接口的空值:

import java.net.NetworkInterface 
def macs = NetworkInterface.networkInterfaces.collect { iface -> 
    iface.hardwareAddress?.encodeHex().toString()
}
于 2013-02-21T04:54:25.783 回答
0

您可以使用NetworkInterface获取此信息,尤其是getHardwareAddress()返回字节数组的方法

于 2013-02-21T04:30:34.290 回答