aboutsummaryrefslogtreecommitdiff
path: root/docs/code/interfaces/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'docs/code/interfaces/main.c')
-rw-r--r--docs/code/interfaces/main.c33
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;
+}