如何在java中获取以太网和wifi卡的mac?(只有2张卡)
我想获得mac(许可证产品),但我收到的结果太多(如果我的英语不好,很抱歉):如何在java中获取以太网和wifi卡的mac?(只有2张卡),java,Java,我想获得mac(许可证产品),但我收到的结果太多(如果我的英语不好,很抱歉): public void testGetMac()抛出SocketException{ 枚举接口=NetworkInterface.getNetworkInterfaces(); int i=0; while(interfaces.hasMoreElements()&&i
public void testGetMac()抛出SocketException{
枚举接口=NetworkInterface.getNetworkInterfaces();
int i=0;
while(interfaces.hasMoreElements()&&i<3)
{
NetworkInterface nif=interfaces.nextElement();
字节[]lBytes=nif.getHardwareAddress();
StringBuffer lStringBuffer=新的StringBuffer();
如果(lBytes!=null)
{
for(字节b:lBytes)
{
追加(String.format(“%1$02X”,新字节(b));
}
i++;
}
System.out.println(lStringBuffer);
}
}
这就是我在应用程序中阅读MAC的方式。希望这有助于
InetAddress ip = InetAddress.getLocalHost();
Enumeration e = NetworkInterface.getNetworkInterfaces();
while (e.hasMoreElements()) {
NetworkInterface n = (NetworkInterface) e.nextElement();
Enumeration ee = n.getInetAddresses();
while (ee.hasMoreElements()) {
InetAddress i = (InetAddress) ee.nextElement();
if (!i.isLoopbackAddress() && !i.isLinkLocalAddress()
&& i.isSiteLocalAddress()) {
ip = i;
}
}
}
NetworkInterface network = NetworkInterface.getByInetAddress(ip);
if(network == null){
String message = "Check your internet connection!";
JOptionPane.showMessageDialog(null, message,"Error", JOptionPane.ERROR_MESSAGE);
return false;
}
byte[] address = network.getHardwareAddress();
“结果太多”是什么意思?你能给我们解释一下或者给我们看看你的电流输出吗?
InetAddress ip = InetAddress.getLocalHost();
Enumeration e = NetworkInterface.getNetworkInterfaces();
while (e.hasMoreElements()) {
NetworkInterface n = (NetworkInterface) e.nextElement();
Enumeration ee = n.getInetAddresses();
while (ee.hasMoreElements()) {
InetAddress i = (InetAddress) ee.nextElement();
if (!i.isLoopbackAddress() && !i.isLinkLocalAddress()
&& i.isSiteLocalAddress()) {
ip = i;
}
}
}
NetworkInterface network = NetworkInterface.getByInetAddress(ip);
if(network == null){
String message = "Check your internet connection!";
JOptionPane.showMessageDialog(null, message,"Error", JOptionPane.ERROR_MESSAGE);
return false;
}
byte[] address = network.getHardwareAddress();