|
160
|
1 #include <stdio.h>
|
|
|
2 #include <uv.h>
|
|
|
3
|
|
|
4 int 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 }
|