gpt4 book ai didi

java - 在java中使用IP地址查找mac地址

转载 作者:行者123 更新时间:2023-11-29 06:46:19 25 4
gpt4 key购买 nike

public static void main(String[] args) {
try {
InetAddress address = InetAddress.getLocalHost();
// InetAddress address = InetAddress.getByName("192.168.46.53");

/*
* Get NetworkInterface for the current host and then read the
* hardware address.
*/
NetworkInterface ni = NetworkInterface.getByInetAddress(address);
if (ni != null) {
byte[] mac = ni.getHardwareAddress();
if (mac != null) {
/*
* Extract each array of mac address and convert it to hexa with the
* following format 08-00-27-DC-4A-9E.
*/
for (int i = 0; i < mac.length; i++) {
System.out.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "");
}
} else {
System.out.println("Address doesn't exist or is not accessible.");
}
} else {
System.out.println("Network Interface for the specified address is not found.");
}

我在查找远程主机的 MAC 地址时遇到问题,但我能够找到本地主机的 MAC 地址。如果我有其他系统的 IP 地址,我可以检索该系统的 MAC 地址吗?

InetAddress 地址 = InetAddress.getByName("192.168.46.53");

如果我在我的工作组中指定系统的 IP 地址...ni 值变为空...并且无法获取它...但是如果提供我系统的 IP 地址...它会获取???

谢谢,
晴天

最佳答案

您将只能获取本地 LAN 上远程主机的 MAC 地址,即与您的计算机位于同一子网中的主机。无法确定超过一跳(IP 跳,而不是以太网跳)的主机的 MAC 地址。

请注意,为本地 LAN 上的主机获取相应的 MAC 地址需要获取 ARP 表或发送和接收原始数据包所需的权限。大多数操作系统都允许在没有特殊权限的情况下读取 ARP 表,但是您使用的机制会根据操作系统而有所不同。如果您需要针对特定​​操作系统的技术,则必须更新您的问题以包含该信息。

关于java - 在java中使用IP地址查找mac地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4436901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com