zoukankan      html  css  js  c++  java
  • JAVA获取指定的类型的本机MAC地址

    前面我们运维小伙在部署的时候,发现在真实服务器获取不到mac地址或者获取不到指定类型的mac地址,写程序记录如下

    import com.google.common.base.Strings;
    
    import java.net.NetworkInterface;
    import java.util.Enumeration;
    
    public class MacHelper {
    
    
        private static MacHelper instance;
    
        public static MacHelper getInstance() {
    
            if (instance == null) {
                synchronized (MacHelper.class) {
                    instance = new MacHelper();
                }
            }
    
            return instance;
        }
    
        /**
         * 获取本地IP
         *
         * @return String
         */
        public String getFirstLocalMac() {
            String startName = "eth", symbol = "";
            return getFirstLocalMac(startName, symbol);
        }
    
        /**
         * 获取本地IP
         *
         * @return String
         */
        public String getFirstLocalMac(String startName, String symbol) {
    
            try {
    
                Enumeration<NetworkInterface> enumeration = NetworkInterface.getNetworkInterfaces();
    
                while (enumeration.hasMoreElements()) {
    
                    NetworkInterface networkInterface = enumeration.nextElement();
    
                    if (networkInterface == null) {
                        continue;
                    }
    
    
                    if (!(networkInterface.getName().equals(startName) ||
                            networkInterface.getName().startsWith(startName))) {
                        continue;
                    }
    
    
                    //获取网卡,获取地址
                    byte[] mac = networkInterface.getHardwareAddress();
    
                    if (mac == null || mac.length <= 0) {
                        continue;
                    }
    
    
                    StringBuilder sb = new StringBuilder();
    
                    int i = 0;
    
                    for (byte b : mac) {
                        //字节转换为整数
                        int temp = b & 0xff;
                        String str = Integer.toHexString(temp);
    
                        if (!Strings.isNullOrEmpty(symbol) && i == 0) {
                            sb.append(symbol);
                        }
    
                        if (str.length() == 1) {
                            sb.append("0").append(str);
                        } else {
                            sb.append(str);
                        }
    
                        i++;
                    }
    
                    return sb.toString().toLowerCase();
    
                }
    
    
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return "";
        }
    }
    

      

  • 相关阅读:
    Grunt jshint Warning: Path must be a string . Received null Use
    bootstrap滚动监视原理实现
    Bootstrap模态框原理分析及问题解决
    LeetCode54. 螺旋矩阵
    LeetCode53. 最大子序和
    mysql servers实现层拼写SQL
    easyUI 分页 获取页面
    excel导入功能
    easyUI遮罩
    uuid生成
  • 原文地址:https://www.cnblogs.com/cqwo/p/14010109.html
Copyright © 2011-2022 走看看