【发布时间】:2015-06-22 07:08:49
【问题描述】:
我知道在 java 中我们可以使用NetworkInterface.getNetworkInterfaces() 来获取本地机器上所有可用的网络接口。我们可以做类似的事情,我可以通过主机名来获取启动并运行的 NIC(带有 IP)吗?
【问题讨论】:
我知道在 java 中我们可以使用NetworkInterface.getNetworkInterfaces() 来获取本地机器上所有可用的网络接口。我们可以做类似的事情,我可以通过主机名来获取启动并运行的 NIC(带有 IP)吗?
【问题讨论】:
不,根据定义,我们不能。需要 IP 地址来隐藏外部世界的 mac 地址。要检索它,您肯定需要在该机器上运行一些代码。
这意味着您需要某种代理。您可以用 Java 实现它,也可以使用特定于平台的工具。例如,您可以在远程 Unix 机器上运行 ifconfig 或在远程 Windows 机器上运行 ipconfig,获取并解析其输出。使用(例如)ssh、rsh、telnet 在远程机器上运行命令。对于 Windows,您还可以使用 WMI。
对于所有这些,您都可以使用 SNMP(如果它在远程机器上启用)。
【讨论】: