addr4 = &((struct sockaddr_in *)ifa->ifa_netmask)->sin_addr;
internal_addr = inet_netof(*addr4);
printf("IPv4 MASK %08x \n",internal_addr);
У меня есть код выше. Он печатает МАСКА IPv4, какФункция inet_netof() возвращает странное значение
IPv4 MASK 00ffffff
Я предполагаю, что это представляет 255.255.255.0
. Это правильное предположение? Я хочу, чтобы преобразовать его в 24
(целое число в CIDR нотации)
Да, но для его правильной печати используйте 'printf (« IPv4 MASK% 08x \ n », ntohl (internal_addr));' поскольку все здесь находится в сетевом порядке байтов. –