I need for an app to set a unique database index and computer hardware based. I've searched for this info in the Forum and I found the jGetMAC library from @giga and this post from @Erel
The jGetMAC library only returns one MAC Address (and I've 5 MAC Addresses/interfaces on my windows system) and the returned MAC doesn't correspond to the Eth interface/nor Wifi interface.
So I've adapted the @Erel code to display only the interfaces which have MAC Addresses (independently if the interfaces are up/down or have IP address assigned to it).
Java class info on http://docs.oracle.com/javase/8/docs/api/java/net/NetworkInterface.html
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Log results:
Current MAC address : 20-6A-8A-A4-B7-89
Realtek PCIe GBE Family Controller #2
eth1
Current MAC address : 5C-93-A2-C8-5E-CB
Qualcomm Atheros AR956x Wireless Network Adapter
wlan0
Current MAC address : 1E-93-A2-C8-5E-CB
Adaptador virtual directo Wi-Fi de Microsoft
wlan1
Current MAC address : 5E-93-A2-C8-5E-CB
Adaptador virtual de red hospedada de Microsoft
wlan2
Current MAC address : 00-00-00-00-00-00-00-E0
Adaptador ISATAP de Microsoft
net1
Current MAC address : 00-00-00-00-00-00-00-E0
Adaptador ISATAP de Microsoft #3
net3
Current MAC address : 0A-00-27-00-00-00
VirtualBox Host-Only Ethernet Adapter #2
eth4
Current MAC address : 00-00-00-00-00-00-00-E0
Adaptador ISATAP de Microsoft #4
net5
Current MAC address : 02-00-4C-4F-4F-50
Npcap Loopback Adapter
eth5
			
			The jGetMAC library only returns one MAC Address (and I've 5 MAC Addresses/interfaces on my windows system) and the returned MAC doesn't correspond to the Eth interface/nor Wifi interface.
So I've adapted the @Erel code to display only the interfaces which have MAC Addresses (independently if the interfaces are up/down or have IP address assigned to it).
Java class info on http://docs.oracle.com/javase/8/docs/api/java/net/NetworkInterface.html
			
				B4X:
			
		
		
		Sub AppStart (Form1 As Form, Args() As String)
    Dim jo As JavaObject = Me
    jo.RunMethod("PrintAllInterfaces", Null)
End Sub
Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
    Return True
End Sub
#if JAVA
import java.net.NetworkInterface;
import java.util.Enumeration;
public static void PrintAllInterfaces() throws Exception {
      for (Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces(); e.hasMoreElements();)
     {
          NetworkInterface network = e.nextElement();
        byte[] mac = network.getHardwareAddress();
      
                if (mac != null)  {
                  
                    StringBuilder sb = new StringBuilder();
                    for (int i = 0; i < mac.length; i++) {
                          sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));       
                      }
                    //Interface properties
                    System.out.println("Current MAC address : " + sb.toString() +"\r\n");
                    System.out.println(network.getDisplayName());
                    System.out.println(network.getName());                      
                  
                }    
      }
}
#End If
	Log results:
Current MAC address : 20-6A-8A-A4-B7-89
Realtek PCIe GBE Family Controller #2
eth1
Current MAC address : 5C-93-A2-C8-5E-CB
Qualcomm Atheros AR956x Wireless Network Adapter
wlan0
Current MAC address : 1E-93-A2-C8-5E-CB
Adaptador virtual directo Wi-Fi de Microsoft
wlan1
Current MAC address : 5E-93-A2-C8-5E-CB
Adaptador virtual de red hospedada de Microsoft
wlan2
Current MAC address : 00-00-00-00-00-00-00-E0
Adaptador ISATAP de Microsoft
net1
Current MAC address : 00-00-00-00-00-00-00-E0
Adaptador ISATAP de Microsoft #3
net3
Current MAC address : 0A-00-27-00-00-00
VirtualBox Host-Only Ethernet Adapter #2
eth4
Current MAC address : 00-00-00-00-00-00-00-E0
Adaptador ISATAP de Microsoft #4
net5
Current MAC address : 02-00-4C-4F-4F-50
Npcap Loopback Adapter
eth5
			
				Last edited: