Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java或scala中获取本地主机网络接口_Java_Scala - Fatal编程技术网

如何在java或scala中获取本地主机网络接口

如何在java或scala中获取本地主机网络接口,java,scala,Java,Scala,我试图在scala应用程序中获取我的机器的MAC地址。搜索时有几个结果,但它们都使用类似以下内容,包括InetAddress.getLocalHost()后跟NetworkInterface.getByInetAddress(…): 我的问题是结果最终为空: val localhost = InetAddress.getLocalHost println(s"lh: $localhost") val localNetworkInterface = NetworkInterface.getByIn

我试图在scala应用程序中获取我的机器的MAC地址。搜索时有几个结果,但它们都使用类似以下内容,包括
InetAddress.getLocalHost()
后跟
NetworkInterface.getByInetAddress(…)

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

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

这将检查每个接口,如果显示名称为eth0,则分配MAC地址。将eth0替换为需要MAC地址的接口的名称(可以使用
ifconfig
查看Linux上的接口-环回地址(localhost)没有硬件地址)


getByInetAddress
在我的计算机上具有相同的断开行为,但您可以使用
getNetworkInterfaces

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

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

您得到的是
null
,因为环回接口没有MAC地址(我已经编辑了我的答案以检查接口名称,您应该能够很容易地获得该名称)
import java.net._
import scala.collection.JavaConverters._

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