我正在尝试在scala应用程序中获取我的机器的MAC地址。搜索时有几个结果,但它们都使用类似以下的内容,涉及InetAddress.getLocalHost()
和NetworkInterface.getByInetAddress(...)
:Get MAC address on local machine with Java
我的问题是结果最终为空:
val localhost = InetAddress.getLocalHost
println(s"lh: $localhost")
val localNetworkInterface = NetworkInterface.getByInetAddress(localhost)
println(s"lni: $localNetworkInterface")
>>lh: ubuntu/127.0.1.1
>>lni: null
最佳答案
getByInetAddress
在我的机器上具有相同的损坏行为,但是您可以改用getNetworkInterfaces
:
import java.net._
import scala.collection.JavaConverters._
NetworkInterface.getNetworkInterfaces.asScala map (_.getHardwareAddress) filter (_ != null)