Sample code for 30+ languages & platforms
DataFlex

Get Network Adapter IP and MAC Addresses

See more Socket/SSL/TLS Examples

Retrieves network adapter information, including IP addresses (IPv4 and IPv6) and MAC addresses.

Note: This example requires Chilkat v10.1.3 or later.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoSocket
    Variant vJson
    Handle hoJson
    String sMacAddress
    String sTemp1
    Boolean bTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatSocket)) To hoSocket
    If (Not(IsComObjectCreated(hoSocket))) Begin
        Send CreateComObject of hoSocket
    End
    Get Create (RefClass(cComChilkatJsonObject)) To hoJson
    If (Not(IsComObjectCreated(hoJson))) Begin
        Send CreateComObject of hoJson
    End

    Set ComEmitCompact Of hoJson To False

    // Note: The GetAdaptersAddresses method was added in Chilkat v10.1.3.
    Get pvComObject of hoJson to vJson
    Get ComGetAdaptersAddresses Of hoSocket vJson To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoSocket To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComEmit Of hoJson To sTemp1
    Showln sTemp1

    // Here are some example results for Windows, Linux, and MacOS:

    // -------------------------------------------------------
    // Windows sample output

    // {
    //   "adapters": [
    //     {
    //       "name": "Ethernet",
    //       "description": "Intel(R) Ethernet Connection (2) I219-LM",
    //       "mac": "7C-D3-0B-25-DA-1C",
    //       "ipv6": "fe80::1758:bec3:b2b8:7045",
    //       "ipv4": "172.16.16.24"
    //     },
    //     {
    //       "name": "Ethernet 2",
    //       "description": "VirtualBox Host-Only Ethernet Adapter",
    //       "mac": "0A-00-27-00-00-0B",
    //       "ipv6": "fe80::19e6:8a84:527b:2f0e",
    //       "ipv4": "192.168.56.1"
    //     },
    //     {
    //       "name": "Bluetooth Network Connection",
    //       "description": "Bluetooth Device (Personal Area Network)",
    //       "mac": "F0-D5-BB-CE-6F-89",
    //       "ipv6": "fe80::d94e:c01e:433e:2049",
    //       "ipv4": "169.254.203.20"
    //     },
    //     {
    //       "name": "Loopback Pseudo-Interface 1",
    //       "description": "Software Loopback Interface 1",
    //       "mac": "",
    //       "ipv6": "::1",
    //       "ipv4": "127.0.0.1"
    //     }
    //   ]
    // }

    // Note: The "description" element is only present when run on Windows.
    // Here's sample code to get the MAC address for the "Ethernet" adapter
    Get ComFindRecordString Of hoJson "adapters" "name" "Ethernet" True "mac" To sMacAddress
    Get ComLastMethodSuccess Of hoJson To bTemp1
    If (bTemp1 = False) Begin
        Showln "Failed to find MAC address for the Ethernet adapter"
    End
    Else Begin
        Showln "MAC address: " sMacAddress
    End

    // -------------------------------------------------------
    // Linux Sample Output:

    // {
    //   "adapters": [
    //     {
    //       "name": "lo",
    //       "mac": "",
    //       "ipv4": "127.0.0.1",
    //       "ipv6": "::1"
    //     },
    //     {
    //       "name": "eth0",
    //       "mac": "50-9A-4C-43-15-56",
    //       "ipv4": "172.16.16.28",
    //       "ipv6": "fe80::529a:4cff:fe43:1556"
    //     }
    //   ]
    // }

    // -------------------------------------------------------
    // Android:

    // On Android, accessing the MAC address directly is restricted on modern Android versions (API level 23 and above) due to privacy and security concerns. 
    // Apps targeting Android 6.0 (API level 23) or higher cannot access the MAC address of the device using standard APIs.
    // If you're developing for modern Android, consider using alternative identifiers (e.g., instance IDs) instead of the MAC address, as recommended by Google.
    // 
    // Chilkat will not return MAC addresses for Android, regardless of the API level.
    // Only IP addresses are returned for Android.

    // -------------------------------------------------------
    // MacOS Sample Output:

    // See Understanding MacOS Network Inteface Names

    // {
    //   "adapters": [
    //     {
    //       "name": "lo0",
    //       "mac": "00-00-00-00-00-00",
    //       "ipv4": "127.0.0.1",
    //       "ipv6": "::1",
    //       "ipv6_linkLocal": "fe80::1"
    //     },
    //     {
    //       "name": "gif0",
    //       "mac": "00-00-00-00-00-00"
    //     },
    //     {
    //       "name": "stf0",
    //       "mac": "00-00-00-00-00-00"
    //     },
    //     {
    //       "name": "anpi1",
    //       "mac": "DE-CF-89-6B-85-18"
    //     },
    //     {
    //       "name": "anpi0",
    //       "mac": "DE-CF-89-6B-85-17"
    //     },
    //     {
    //       "name": "en0",
    //       "mac": "14-98-77-38-2A-47",
    //       "ipv6": "fe80::1cf4:e6db:6159:a9d5",
    //       "ipv4": "172.16.16.30"
    //     },
    //     {
    //       "name": "en7",
    //       "mac": "DE-CF-89-6B-85-F7"
    //     },
    //     {
    //       "name": "en8",
    //       "mac": "DE-CF-89-6B-85-F8"
    //     },
    //     {
    //       "name": "en2",
    //       "mac": "36-69-36-B0-29-C0"
    //     },
    //     {
    //       "name": "en3",
    //       "mac": "36-69-36-B0-29-C4"
    //     },
    //     {
    //       "name": "bridge0",
    //       "mac": "36-69-36-B0-29-C0"
    //     },
    //     {
    //       "name": "ap1",
    //       "mac": "36-98-77-45-45-EC",
    //       "ipv6": "fe80::3498:77ff:fe45:45ec"
    //     },
    //     {
    //       "name": "en1",
    //       "mac": "14-98-77-45-45-EC",
    //       "ipv6": "fe80::149b:a396:ca4e:f18d",
    //       "ipv4": "192.168.1.224"
    //     },
    //     {
    //       "name": "awdl0",
    //       "mac": "DE-4C-F0-5C-17-F9",
    //       "ipv6": "fe80::dc4c:f0ff:fe5c:17f9"
    //     },
    //     {
    //       "name": "llw0",
    //       "mac": "DE-4C-F0-5C-17-F9",
    //       "ipv6": "fe80::dc4c:f0ff:fe5c:17f9"
    //     },
    //     {
    //       "name": "utun0",
    //       "mac": "00-00-00-00-00-00",
    //       "ipv6": "fe80::b3b3:cfbe:5790:9573"
    //     },
    //     {
    //       "name": "utun1",
    //       "mac": "00-00-00-00-00-00",
    //       "ipv6": "fe80::e5:677f:9f70:7ad"
    //     },
    //     {
    //       "name": "utun2",
    //       "mac": "00-00-00-00-00-00",
    //       "ipv6": "fe80::ce81:b1c:bd2c:69e"
    //     },
    //     {
    //       "name": "utun3",
    //       "mac": "00-00-00-00-00-00",
    //       "ipv6": "fe80::87e5:c723:bbd:6656"
    //     },
    //     {
    //       "name": "utun4",
    //       "mac": "00-00-00-00-00-00",
    //       "ipv6": "fe80::cb13:ae1a:9de3:392e"
    //     }
    //   ]
    // }
    // 


End_Procedure