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

我正在尝试在 scala应用程序中获取我的机器的MAC地址.搜索时有几个结果,但它们都使用类似下面的内容,涉及InetAddress.getLocalHost(),后跟NetworkInterface.getByInetAddress(…): Get MAC address on local machine with Java

我的问题是结果最终为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

解决方法

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

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

NetworkInterface.getNetworkInterfaces.asScala map (_.getHardwareAddress) filter (_ != null)

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...