Преобразовать номер сети Интернет в формат CIDR
#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>char * inet_net_ntop( int af,const void *src,int bits,char *dst,size_t size );
AF_INET
.libsocket
Функция inet_net_ntop() преобразует номер сети Интернет из сетевого формата (обычно struct in_addr
или другой двоичной формы в сетевом порядке байт) в формат представления CIDR (Classless Internet Domain Routing), который подходит для целей внешнего отображения.
С CIDR один IP-адрес может использоваться для обозначения множества уникальных IP-адресов. IP-адрес CIDR выглядит как обычный IP-адрес, за исключением того, что он заканчивается косой чертой (/), за которой следует число, называемое префиксом IP. Например:
172.200.0.0/16
Префикс IP указывает, сколько адресов покрывается адресом CIDR, при этом меньшие числа покрывают большее количество адресов.
Сетевые номера (Интернет-адреса IPv4)
Можно указать Интернет-адрес в виде четырех чисел, разделенных точками или в виде номера Интернет-сетей, используя одну из следующих форм:
16
-битная величина и помещается в два крайних правых байта номера сети Интернет (или сетевого адреса). Это делает трехкомпонентный формат адреса удобным для указания сетевых адресов класса B как net.net.host. 24
-битная величина и помещается в крайние правые три байта номера сети Интернет (или сетевого адреса). Это делает формат, состоящий из двух частей, удобным для указания сетевых номеров класса A как net.host. Все числа, представленные как «части» в точечной нотации, могут быть десятичными, восьмеричными или шестнадцатеричными, согласно языку C. То есть число интерпретируется как десятичное, если оно не имеет в начале 0
(восьмеричное) или 0x
или 0X
(шестнадцатеричное) в начале.
Указатель на строку dst. Если возникла ошибка функция возвращает NULL
, код ошибки записывается в errno.
ЗОСРВ «Нейтрино»
Предыдущий раздел: Описание API сетевой библиотеки