2013-02-21 180 views
0

只想詢問是否有方法將本地計算機的Mac地址作爲字符串獲取。 我需要將本地計算機的mac地址保存到域類中。我嘗試使用這個代碼讓我的Mac地址:在Groovy中獲取Mac地址

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

,但此行也返回了很多關於我的IP地址的詳細信息,所有我需要的是在上述子「的HWaddr後發現的MAC地址」。我在想如果我可以使用正則表達式提取這個子字符串,但我不知道如何去做。

回答

5

你可以得到的MAC地址使用java.net.NetworkInterface的接口。請注意,可能有多個硬件網絡接口,因此可能有多個MAC地址。另外,大多數機器至少有一個沒有硬件地址的接口:回送接口。

這將讓所有的M​​AC地址作爲字符串,包括空的接口,而無需MAC地址列表:

import java.net.NetworkInterface 
def macs = NetworkInterface.networkInterfaces.collect { iface -> 
    iface.hardwareAddress?.encodeHex().toString() 
} 
+2

或者:'NetworkInterface.networkInterfaces * .hardwareAddress * .collect {的String.format(' %02x',it)} *。join(':')'把冒號放在:-) – 2013-02-21 15:06:24

0

可以使用NetworkInterface得到這個信息,尤其是getHardwareAddress()方法,該方法返回字節數組