1#include <stdio.h>
2#include <uv.h>
3
4int main() {
5    char buf[512];
6    uv_interface_address_t *info;
7    int count, i;
8
9    uv_interface_addresses(&info, &count);
10    i = count;
11
12    printf("Number of interfaces: %d\n", count);
13    while (i--) {
14        uv_interface_address_t interface_a = info[i];
15
16        printf("Name: %s\n", interface_a.name);
17        printf("Internal? %s\n", interface_a.is_internal ? "Yes" : "No");
18
19        if (interface_a.address.address4.sin_family == AF_INET) {
20            uv_ip4_name(&interface_a.address.address4, buf, sizeof(buf));
21            printf("IPv4 address: %s\n", buf);
22        }
23        else if (interface_a.address.address4.sin_family == AF_INET6) {
24            uv_ip6_name(&interface_a.address.address6, buf, sizeof(buf));
25            printf("IPv6 address: %s\n", buf);
26        }
27
28        printf("\n");
29    }
30
31    uv_free_interface_addresses(info, count);
32    return 0;
33}
34