获取Mac地址列表
/* * Copyright 2013 The Athena-Peacock Project. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Revision History * Author Date Description * --------------- ---------------- ------------ * Sang-cheon Park 2013. 7. 22. First Draft. *//* 来 自 nowjava.com - 时 代 Java*/ //package com.nowjava; import java.net.InetAddress; import java.net.NetworkInterface; import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; public class Main { public static void main(String[] argv) throws Exception { /** 时代Java公众号 提供 **/ System.out.println(getMacAddressList()); } public static List<String> getMacAddressList() throws Exception { List<String> macAddressList = null; Set<String> macAddressSet = null; Enumeration<NetworkInterface> ifs = NetworkInterface .getNetworkInterfaces(); if (ifs != null) { macAddressSet = new LinkedHashSet<String>(); while (ifs.hasMoreElements()) { Enumeration<InetAddress> hosts = ifs.nextElement() .getInetAddresses(); if (hosts != null) { String macAddress = null; while (hosts.hasMoreElements()) { macAddress = getMacAddress(hosts.nextElement()); if (macAddress != null) { macAddressSet.add(macAddress); } } } } } if (macAddressSet == null) { return null; } // ?? ?? ? ?????? ????. macAddressList = new ArrayList<String>(macAddressSet); Collections.sort(macAddressList); Collections.reverse(macAddressList); return macAddressList; } public static String getMacAddress() throws Exception { return getMacAddress(InetAddress.getLocalHost()); } public static String getMacAddress(InetAddress host) throws Exception { String macAddress = null; NetworkInterface iface = NetworkInterface.getByInetAddress(host); if (iface != null) { byte[] hardware = iface.getHardwareAddress(); if (hardware != null && hardware.length == 6 && hardware[1] != (byte) 0xff) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < hardware.length; i++) { sb.append(String.format("%02x%s", hardware[i], (i < hardware.length - 1) ? ":" : "")); } macAddress = sb.toString().toLowerCase() .replaceAll(":", "").replaceAll("-", ""); } } return macAddress; } public static String getMacAddress(String name) throws Exception { String macAddress = null; List<String> macAddressList = null; Set<String> macAddressSet = null; Enumeration<NetworkInterface> ifs = NetworkInterface .getNetworkInterfaces(); if (ifs != null) { macAddressSet = new LinkedHashSet<String>(); NetworkInterface nifs = null; while (ifs.hasMoreElements()) { nifs = ifs.nextElement(); Enumeration<InetAddress> hosts = nifs.getInetAddresses(); if (hosts != null) {