diff options
Diffstat (limited to 'docs/code/interfaces/main.c')
-rw-r--r-- | docs/code/interfaces/main.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/docs/code/interfaces/main.c b/docs/code/interfaces/main.c new file mode 100644 index 00000000..cac12c26 --- /dev/null +++ b/docs/code/interfaces/main.c @@ -0,0 +1,33 @@ +#include <stdio.h> +#include <uv.h> + +int main() { + char buf[512]; + uv_interface_address_t *info; + int count, i; + + uv_interface_addresses(&info, &count); + i = count; + + printf("Number of interfaces: %d\n", count); + while (i--) { + uv_interface_address_t interface = info[i]; + + printf("Name: %s\n", interface.name); + printf("Internal? %s\n", interface.is_internal ? "Yes" : "No"); + + if (interface.address.address4.sin_family == AF_INET) { + uv_ip4_name(&interface.address.address4, buf, sizeof(buf)); + printf("IPv4 address: %s\n", buf); + } + else if (interface.address.address4.sin_family == AF_INET6) { + uv_ip6_name(&interface.address.address6, buf, sizeof(buf)); + printf("IPv6 address: %s\n", buf); + } + + printf("\n"); + } + + uv_free_interface_addresses(info, count); + return 0; +} |