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: