Advertisement
chepseskaf

Java - List all physical address

Sep 30th, 2013
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.37 KB | None | 0 0
  1. import java.io.PrintStream;
  2. import java.net.InetAddress;
  3. import java.net.NetworkInterface;
  4. import java.net.SocketException;
  5. import java.util.Collections;
  6. import java.util.Enumeration;
  7.  
  8. public class ListMacAddress {
  9.     public static void main(String[] args) throws SocketException {
  10.         final PrintStream out = System.out;
  11.         final Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
  12.         displayInformationAbout(networkInterfaces, out);
  13.     }
  14.     private static void displayInformationAbout(final Enumeration<NetworkInterface> networkInterfaces, final PrintStream out) throws SocketException {
  15.         for (NetworkInterface networkInterface : Collections.list(networkInterfaces)) {
  16.             out.printf("%s (%s) - %s [%s]%n",
  17.                     networkInterface.getName(),
  18.                     networkInterface.getDisplayName(),
  19.                     ip(networkInterface),
  20.                     hardware(networkInterface));
  21.             displayInformationAbout(networkInterface.getSubInterfaces(), out);
  22.         }
  23.     }
  24.     private static String ip(final NetworkInterface networkInterface) {
  25.         final StringBuilder builder = new StringBuilder();
  26.         final Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();
  27.         while (inetAddresses.hasMoreElements()) {
  28.             final InetAddress inetAddress = inetAddresses.nextElement();
  29.             builder.append(inetAddress.getHostAddress());
  30.             if(inetAddresses.hasMoreElements()){
  31.                 builder.append(":");
  32.             }
  33.         }
  34.         return builder.toString();
  35.     }
  36.     private static String hardware(final NetworkInterface networkInterface) throws SocketException {
  37.         final byte[] hardwareAddress = networkInterface.getHardwareAddress();
  38.         return hardwareAddress == null ? "" : readable(hardwareAddress);
  39.     }
  40.     private static String readable(byte[] hardwareAddress) {
  41.         if(hardwareAddress == null) return "";
  42.         final StringBuilder builder = new StringBuilder('[');
  43.         for (int i = 0; i < hardwareAddress.length; i++) {
  44.             byte b = hardwareAddress[i];
  45.             builder.append(String.format("%02X", b));
  46.             if(i < hardwareAddress.length - 1){
  47.                 builder.append(':');
  48.             }
  49.         }
  50.         return builder.append(']').toString();
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement