如何在java或scala中获取localhost网络接口

jon*_*rry 3 java scala

我正在尝试在scala应用程序中获取我的机器的MAC地址.搜索时有几个结果,但它们都使用如下所示的内容,InetAddress.getLocalHost()后面跟着NetworkInterface.getByInetAddress(...):使用Java在本地计算机上获取MAC地址

我的问题是结果最终为null:

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
Run Code Online (Sandbox Code Playgroud)

win*_*ner 5

getByInetAddress在我的机器上有相同的破坏行为,但您可以使用getNetworkInterfaces:

import java.net._
import scala.collection.JavaConverters._

NetworkInterface.getNetworkInterfaces.asScala map (_.getHardwareAddress) filter (_ != null)
Run Code Online (Sandbox Code Playgroud)