java - 如何获取远程机器的mac地址java

标签 java ip mac-address

<分区>

Possible Duplicate:
Query ARP cache to get MAC ID

我需要获取连接到我的家庭网络的所有远程机器的 MAC 地址。我可以使用下面的代码读取我自己机器的 mac 地址,但我不知道如何获取我网络上其他机器的 mac 地址。或者是否可能。

import java.net.InetAddress;
import java.net.NetworkInterface;
class Test {
public static void main(String[] args) throws Exception {
InetAddress address = InetAddress.getLocalHost();

NetworkInterface ni = NetworkInterface.getByInetAddress(address);
byte[] mac = ni.getHardwareAddress();

for (int i = 0; i < mac.length; i++) {
  System.out.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "");
}
}
}  

输出(MyComputer的6byte mac地址)
30-60-77-12-cd-99

最佳答案

How to get remote machines mac addresses

你不能那样做——一般情况下不能。 MAC addresses仅适用于同一物理网段中的机器。这些机器使用 ARP 直接相互通信将 IP 地址“翻译”为物理 (MAC) 地址的协议(protocol)。

一旦 IP 路由器或任何其他 Layer-3设备被越过,任何 MAC 信息通常都会丢失。

底线:您无法通过 Internet 获取远程节点的 MAC 地址 - 您甚至无法在任何中等规模的专用网络中执行此操作,例如在大多数大中型公司。

关于java - 如何获取远程机器的mac地址java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14059271/

相关文章:

java - 如何写入分区/数据文件?

java - XStream java.util.Map 字段编码

tcp - TCP ACK 和下一个数据包之间的延迟

php - 是否有用于从 MAC 地址查找供应商的 PHP 库?

java - 二维条码检测和图像分割

java - 在Java中,谁能解释为什么这个对象为空?

python - 如何在 PyQt4 中的 http 请求中设置 X-Forwarded-For

java - 使用 dnsjava 将给定 IP 解析为其主机名

iphone - iPhone 的 MAC 地址是唯一的,它会改变吗?

android - 在棉花糖中获取蓝牙本地mac地址