inet_ntop - преобразует адреса IPv4 и IPv6 из двоичного формата в текстовый
inet_ntop(3)
преобразует адреса IPv4 и IPv6 из двоичного формата в текстовый
ОБЗОР
#include <arpa/inet.h>
const char *inet_ntop(int af, const void *src,
char *dst, socklen_t size);
ОПИСАНИЕ
Данная функция преобразует структуру сетевого адреса
src с семейством
адресов
af в строку символов и копирует её в буфер по адресу
dst,
значение которого не должно быть равно NULL. В аргументе
size вызывающий
передаёт количество доступных байт в буфере.
По сравнению с inet_ntoa(3) функция inet_ntop() поддерживает семейства
адресов, и теперь её рекомендуется использовать вместо inet_ntoa(3). В
настоящее время поддерживаются следующие семейства адресов:
AF_INET
Значение src указывает на структуру struct in_addr (с сетевым порядком
байт), которая преобразуется в сетевой адрес IPv4 в точечно-десятичном
формате «ddd.ddd.ddd.ddd». Буфер dst должен быть размером, по меньшей
мере, INET_ADDRSTRLEN байт.
AF_INET6
Значение src указывает на структуру struct in6_addr (с сетевым
порядком байт), которая преобразуется в сетевой адрес IPv6 наиболее
подходящего формата для этого адреса. Буфер dst должен быть размером, по
меньшей мере, INET6_ADDRSTRLEN байт.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении
inet_ntop() возвращает указатель не-NULL на
dst. В случае ошибки возвращается NULL, а
errno присваивается значение
ошибки.
ОШИБКИ
EAFNOSUPPORT
Аргумент af не содержит допустимого значения семейства адресов.
ENOSPC
Строка с преобразованным адресом превышает размер, указанный в size.
АТРИБУТЫ
Описание терминов данного раздела смотрите в
attributes(7).
Интерфейс Атрибут Значение
inet_ntop()
безвредность в потоках: безвредно (MT-Safe locale)
СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2001, POSIX.1-2008. Заметим, что в RFC 2553 определён прототип, в
котором последний аргумент
size имеет тип
size_t. Многие системы
следуют RFC 2553. В glibc 2.0 и 2.1 используется тип
size_t, но в 2.2 и
более новых версиях используется тип
socklen_t.
ДЕФЕКТЫ
Для семейства
AF_INET6 IPv4-отображённые адреса IPv6 преобразуются в
формат IPv6.
ПРИМЕР
Смотрите
inet_pton(3).