import java.lang.Long; public class MacUtil { /** * MACå°å转æ¢ä¸ºLongå * * @param strMac * @return Long */ public static long macToLong(String strMac) { long[] mac = new long[6]; // å æ¾å°MACå°åå符串ä¸:çä½ç½® int position1 = strMac.indexOf("-"); int position2 = strMac.indexOf("-", position1 + 1); int position3 = strMac.indexOf("-", position2 + 1); int position4 = strMac.indexOf("-", position3 + 1); int position5 = strMac.indexOf("-", position4 + 1); // å°æ¯ä¸ª:ä¹é´çåç¬¦ä¸²è½¬æ¢ææ´å mac[0] = Long.parseLong(strMac.substring(0, position1),16); mac[1] = Long.parseLong(strMac.substring(position1 + 1, position2),16); mac[2] = Long.parseLong(strMac.substring(position2 + 1, position3),16); mac[3] = Long.parseLong(strMac.substring(position3 + 1, position4),16); mac[4] = Long.parseLong(strMac.substring(position4 + 1, position5),16); mac[5] = Long.parseLong(strMac.substring(position5 + 1),16); return (mac[0] << 40) + (mac[1] << 32) + (mac[2] << 24) + (mac[3] << 16) + (mac[4] << 8) + mac[5]; } /** * Longå转æ¢ä¸ºMACå°å(ä¸è¡¥0) * * @param longMac * @return String */ public static String longToMac(long longMac) { StringBuffer sb = new StringBuffer(""); // ç´æ¥å³ç§»24ä½ sb.append(Long.toHexString(longMac >>> 40).toUpperCase()); sb.append("-"); // å°é«8ä½ç½®0ï¼ç¶åå³ç§»32ä½ sb.append(Long.toHexString((longMac >>> 32) & 0x00FF).toUpperCase()); sb.append("-"); // å°é«16ä½ç½®0ï¼ç¶åå³ç§»24ä½ sb.append(Long.toHexString((longMac >>> 24) & 0x0000FF).toUpperCase()); sb.append("-"); // å°é«24ä½ç½®0ï¼ç¶åå³ç§»16ä½ sb.append(Long.toHexString((longMac >>> 16) & 0x000000FF).toUpperCase()); sb.append("-"); // å°é«32ä½ç½®0ï¼ç¶åå³ç§»8ä½ sb.append(Long.toHexString((longMac >>> 8) & 0x00000000FF).toUpperCase()); sb.append("-"); // å°é«40ä½ç½®0 sb.append(Long.toHexString(longMac & 0x0000000000FF).toUpperCase()); return sb.toString(); } }