我正在使用以下代码获取mac地址:(主要)
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements())
{
NetworkInterface nif = interfaces.nextElement();
byte[] lBytes = nif.getHardwareAddress();
StringBuffer lStringBuffer = new StringBuffer();
if (lBytes != null)
{
for (byte b : lBytes)
{
lStringBuffer.append(String.format("%1$02X ", new Byte(b)));
}
}
System.out.println(lStringBuffer);
}
我已包含以下标题:
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.*;
如果我运行代码,我会得到很长的输出(大部分为空白),并且我还会得到一个包含 6 个地址的列表,我通过 检查以太网的 MAC 地址ip config
,它在列表中;
我想知道其中哪一个是以太网的mac,即使我在不同的PC上运行它,我也想知道,如何检查他们是否欺骗了mac地址......
欺骗我的意思是,如果有人在安装 Windows 后,更改注册表或软件中的 mac 地址。我在关于堆栈溢出的其他一些问题的帖子中读到它,有人评论说,即使有人欺骗了 mac,他编写的代码也可以工作,因此代码不好。所以我想它可以在java中完成。我会在那里问,但我不能。我的意思是,如果 PC 或笔记本电脑没有无线功能,它应该采用以太网 MAC 地址。