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