相关疑难解决方法(0)

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

我想获取使用此解决方案并在此处搜索的以太网卡的MAC(用于产品密钥),问题是当所有网络(以太网和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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java networking

17
推荐指数
1
解决办法
2635
查看次数

Android设备模拟器是否有MAC地址?

我写了以下代码来获取MAC地址:

WifiManager wimanager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
String address = wimanager.getConnectionInfo().getMacAddress();
Log.d("TOKEN", address);
Run Code Online (Sandbox Code Playgroud)

这在我的手机上完美运行,但在Android模拟器中它返回null.这是因为Android模拟器没有MAC地址吗?

java android mac-address wifi android-virtual-device

6
推荐指数
1
解决办法
5910
查看次数

无法在Linux上获得NetworkInterface.getNetworkInterfaces的所有网络接口

我需要打印机器的所有mac地址.建议的方法是使用NetworkInterface.getNetworkInterfaces()并迭代返回的枚举.但是,当某些设备关闭时(NO Ip已配置),则上述方法将不会返回接口.

运行"ip addr"将返回以下内容

  1. lo:mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8范围主机lo inet6 :: 1/128范围主机valid_lft永远是preferred_lft永远
  2. G2:mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:03:b2:75:99:c2 brd ff:ff:ff:ff:ff:ff
  3. G1:mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:03:b2:75:99:c3 brd ff:ff:ff:ff:ff:ff inet 10.205.191.123/16 brd 10.205.255.255 scope global G1 inet6 fe80: :203:b2ff:fe75:99c3/64范围链接valid_lft永远preferred_lft永远
  4. eth2:mtu 1500 qdisc noop qlen 1000 link/ether 00:03:b2:75:99:c4 brd ff:ff:ff:ff:ff:ff
  5. eth3:mtu 1500 qdisc noop qlen 1000 link/ether 00:03:b2:75:99:c5 brd ff:ff:ff:ff:ff:ff

但是,当我运行Java代码(即使是root或具有网络权限)时,我只获得了环回和G1接口.

这是我为测试目的编写的代码:

Enumeration<NetworkInterface> ni = NetworkInterface.getNetworkInterfaces();
while(ni.hasMoreElements()){
NetworkInterface nextElement = ni.nextElement();
byte[] mac …
Run Code Online (Sandbox Code Playgroud)

java linux networking

5
推荐指数
1
解决办法
3616
查看次数