我有一个代码可以读取LocalHost Mac地址。 代码是从Servlet或JSP调用的 但未能读取REMOTE HOST或Client的地址。 我正在使用NetworkInterface类来实现该功能 我理解其读取localhost地址的一个原因是 - 能够查找LocalHost地址,但无法在远程主机上查找或执行反向dns搜索。
InetAddress addr = InetAddress.getByName(clientIP);
NetworkInterface ni = NetworkInterface.getByInetAddress(addr);
if (ni == null)
{
throw new SocketException("Cannot reach the host ##"+clientIP+"."); // Throws exception here for REMOTE Host or CLient
}
byte[] macAddrs = ni.getHardwareAddress();
if (macAddrs == null) {
throw new UnknownHostException("Host IP Adrress Lookup Failed...");
}
for (int k = 0; k < macAddrs.length; k++) {
String macValue = String.format("%02X%s", macAddrs[k], (k < macAddrs.length - 1) ? "-" : "");
macAddress.append(macValue);
}