只是想问一下是否有办法将本地机器的 Mac 地址作为字符串获取。我需要将本地机器的 mac 地址保存到域类中。我尝试使用此代码来获取我的 Mac 地址:
String address = "ifconfig".execute().text()
但是这一行还返回了很多关于我的 ip 地址的详细信息,我需要得到的只是在子字符串“HWaddr”之后找到的 Mac 地址。我在想是否可以使用正则表达式提取此子字符串,但我不知道该怎么做。
只是想问一下是否有办法将本地机器的 Mac 地址作为字符串获取。我需要将本地机器的 mac 地址保存到域类中。我尝试使用此代码来获取我的 Mac 地址:
String address = "ifconfig".execute().text()
但是这一行还返回了很多关于我的 ip 地址的详细信息,我需要得到的只是在子字符串“HWaddr”之后找到的 Mac 地址。我在想是否可以使用正则表达式提取此子字符串,但我不知道该怎么做。
您可以使用 获取接口的 MAC 地址java.net.NetworkInterface
。请注意,可能有多个硬件网络接口,因此可能有多个 MAC 地址。此外,大多数机器都会有至少一个没有硬件地址的接口:环回接口。
这将获得所有 MAC 地址作为字符串的列表,包括没有 MAC 地址的接口的空值:
import java.net.NetworkInterface
def macs = NetworkInterface.networkInterfaces.collect { iface ->
iface.hardwareAddress?.encodeHex().toString()
}
您可以使用NetworkInterface获取此信息,尤其是getHardwareAddress()
返回字节数组的方法