Java Network How to - Format MAC address byte array to String








Question

We would like to know how to format MAC address byte array to String.

Answer

import java.net.InetAddress;
import java.net.NetworkInterface;
//from w  ww  . j av a2 s  .c  o  m
public class Main {

  public static void main(String[] args) throws Exception {
    InetAddress ip = InetAddress.getLocalHost();
    System.out.println("Current IP address : " + ip.getHostAddress());

    NetworkInterface network = NetworkInterface.getByInetAddress(ip);
    byte[] mac = network.getHardwareAddress();
    System.out.print("Current MAC address : ");

    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());
  }
}