我正在尝试在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)

10-04 17:44