gpt4 book ai didi

Java获取断开连接的卡的mac地址

转载 作者:太空狗 更新时间:2023-10-29 22:41:24 25 4
gpt4 key购买 nike

我想获取网卡的MAC(产品 key )我尝试使用这种解决方案并在此处搜索,问题是当所有网络断开连接(以太网和 wifi)时,它返回空 MAC 地址。我宁愿获取以太网地址,即使它断开连接也是如此。

谢谢!!

   public static void main(String[] args)
{
InetAddress ip;
try {
ip = InetAddress.getLocalHost();

System.out.println("The mac Address of this machine is :" + ip.getHostAddress());

NetworkInterface network = NetworkInterface.getByInetAddress(ip);

byte[] mac = network.getHardwareAddress();

System.out.print("The mac address is : ");

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

System.out.println(sb.toString());

}
catch (UnknownHostException e) {
e.printStackTrace();
}
catch (SocketException e) {
e.printStackTrace();
}
}
}

最佳答案

使用 InetAddress 可让您查看 IP 地址列表。如果你没有,因为接口(interface)都断开了,那么你就不能在这些接口(interface)上循环。

您应该尝试使用 NetworkInterface 类。

public class MacAddressTest
{
public static void main(String[] args) throws Exception
{
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);
}
}
}

关于Java获取断开连接的卡的mac地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12145704/

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