diff --git a/core-java-modules/core-java-networking-2/src/main/java/com/baeldung/macaddress/GetAllMacAddressesDemo.java b/core-java-modules/core-java-networking-2/src/main/java/com/baeldung/macaddress/GetAllMacAddressesDemo.java new file mode 100644 index 0000000000..8f07d4133e --- /dev/null +++ b/core-java-modules/core-java-networking-2/src/main/java/com/baeldung/macaddress/GetAllMacAddressesDemo.java @@ -0,0 +1,23 @@ +package com.baeldung.macaddress; + +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.Enumeration; + +public class GetAllMacAddressesDemo { + + public static void main(String[] args) throws SocketException { + Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces(); + while (networkInterfaces.hasMoreElements()) { + NetworkInterface ni = networkInterfaces.nextElement(); + byte[] hardwareAddress = ni.getHardwareAddress(); + if (hardwareAddress != null) { + String[] hexadecimalFormat = new String[hardwareAddress.length]; + for (int i = 0; i < hardwareAddress.length; i++) { + hexadecimalFormat[i] = String.format("%02X", hardwareAddress[i]); + } + System.out.println(String.join("-", hexadecimalFormat)); + } + } + } +} diff --git a/core-java-modules/core-java-networking-2/src/test/java/com/baeldung/macaddress/MacAddressUnitTest.java b/core-java-modules/core-java-networking-2/src/test/java/com/baeldung/macaddress/MacAddressUnitTest.java new file mode 100644 index 0000000000..293e92c690 --- /dev/null +++ b/core-java-modules/core-java-networking-2/src/test/java/com/baeldung/macaddress/MacAddressUnitTest.java @@ -0,0 +1,21 @@ +package com.baeldung.macaddress; + +import org.junit.Test; + +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.net.UnknownHostException; + +import static org.junit.Assert.assertEquals; + +public class MacAddressUnitTest { + + @Test + public void givenNetworkInterface_whenUsingLocalHost_thenGetMacAddress() throws UnknownHostException, SocketException { + InetAddress localHost = InetAddress.getLocalHost(); + NetworkInterface ni = NetworkInterface.getByInetAddress(localHost); + byte[] macAddress = ni.getHardwareAddress(); + assertEquals(6, macAddress.length); + } +}