如何使用 Java 5 获取主机 MAC 地址?
我知道您可以使用 Java 6 使用 java.net.NetworkInterface->getHardwareAddress()
来完成此操作。但我部署的环境仅限于 Java 5。
有谁知道如何在 Java 5 或更早版本中执行此操作?非常感谢。
I know you can do this with Java 6 using java.net.NetworkInterface->getHardwareAddress()
. But the environment I am deploying on is restricted to Java 5.
Does anyone know how to do this in Java 5 or earlier? Many thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Java 5 中的标准方法是启动本机进程来运行
ipconfig
或ifconfig
并解析OutputStream
以获得答案。例如:
The standard way in Java 5 was to start a native process to run
ipconfig
orifconfig
and parse theOutputStream
to get your answer.For example:
Butterchicken 的解决方案没问题,但仅适用于英文版本的 Windows。
一个更好的(独立于语言的)解决方案是匹配 MAC 地址的模式。在这里我还确保该地址具有关联的 IP(例如,过滤掉蓝牙设备):
Butterchicken's solution is ok, but will only work on english versions of Windows.
A somewhat better (language independent) solution would be to match the pattern for MAC addresses. Here I also make sure that this address has an associated IP (e.g. to filter out bluetooth devices):
据我所知,没有纯粹的 Java 6 之前的解决方案。 UUID 解决了这个问题,但首先确定操作系统以确定它是否应该运行 ifconfig 或 ipconfig。
As far as I know there is no pure pre Java 6 solution. UUID solves this but first determine OS to find out if it should run ifconfig or ipconfig.
在 Linux 和 Mac OS X 计算机上,您可能必须使用
ifconfig -a
。ipconfig
是 Windows 命令。On Linux and Mac OS X Machine , you might have to use
ifconfig -a
.ipconfig
is as windows command.