Man page - getipnodebyname(3)

Packages contains this manual

Available languages:

en fr es pl ja ru ro

Manual

getipnodebyname

НАИМЕНОВАНИЕ
БИБЛИОТЕКА
ОБЗОР
ОПИСАНИЕ
Параметры getipnodebyname()
Параметры getipnodebyaddr()
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
СТАНДАРТЫ
ИСТОРИЯ
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД

НАИМЕНОВАНИЕ

getipnodebyname, getipnodebyaddr, freehostent - возвращают сетевые имена и адреса машины

БИБЛИОТЕКА

Стандартная библиотека языка C ( libc , -lc )

ОБЗОР

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>

[[deprecated]] struct hostent *getipnodebyname(const char * name , int af ,
int
flags , int * error_num );
[[deprecated]] struct hostent *getipnodebyaddr(const void
addr [. len ],
size_t
len , int af ,
int *
error_num );
[[deprecated]] void freehostent(struct hostent *
ip );

ОПИСАНИЕ

Эти функции устарели (и недоступны в glibc). Используйте вместо них функции getaddrinfo (3) и getnameinfo (3).

Функции getipnodebyname () и getipnodebyaddr () возвращают имена и адреса машины в сети. Эти функции возвращают указатель на следующую структуру:

struct hostent {
char *h_name;
char **h_aliases;
int h_addrtype;
int h_length;
char **h_addr_list;
};

Эти функции заменяют функции gethostbyname (3) и gethostbyaddr (3), которые могут возвращать только сетевые адреса семейства IPv4. Функции getipnodebyname () и getipnodebyaddr () могут осуществлять доступ к нескольким семействам сетевых адресов.

В отличие от функций gethostby эти функции возвращают указатели на динамически выделяемую память. Функция freehostent () используется для освобождения динамически выделенной памяти после того, как надобность в структуре hostent отпадёт.

Параметры getipnodebyname()

Функция getipnodebyname () ищет сетевой адрес узла, указанного в параметре name . В параметре af указывается одно из следующих значений:
AF_INET

Параметр name указывает на адрес IPv4 в точечной нотации или на имя сетевого узла IPv4.

AF_INET6

Параметр name указывает на шестнадцатеричный адрес IPv6 или на имя сетевого узла IPv6.

В аргументе flags указываются дополнительные параметры. Возможно указать более одного параметра с помощью логического сложения (OR). Если параметры не требуются, то значение flags должно быть равно нулю.
AI_V4MAPPED

Этот флаг используется с AF_INET6 для запроса адресов IPv4 вместо адресов IPv6; адрес IPv4 будет отображён в адрес IPv6.

AI_ALL

Это флаг используется с AI_V4MAPPED для запроса одновременно адресов IPv4 и IPv6. Любой найденный адрес IPv4 будет отображён в адрес IPv6.

AI_ADDRCONFIG

Этот флаг используется с AF_INET6 и указывает, что запросы адресов IPv6 не должны производиться, если система не имеет хотя бы одного адреса IPv6, присвоенного сетевому интерфейсу, а также, что запросы адресов IPv4 не должны производиться, если система не имеет хотя бы одного адреса IPv4, присвоенного сетевому интерфейсу. Флаг может быть использован сам по себе или вместе с флагом AI_V4MAPPED .

AI_DEFAULT

Этот флаг эквивалентен (AI_ADDRCONFIG | AI_V4MAPPED) .

Параметры getipnodebyaddr()

Функция getipnodebyaddr () ищет имя узла, чей сетевой адрес указан в параметре addr . В параметре af указывается одно из следующих значений:
AF_INET

Параметр addr указывает на структуру struct in_addr и значение len должно быть равно sizeof(struct in_addr) .

AF_INET6

Параметр addr указывает на структуру struct in6_addr и значение len должно быть равно sizeof(struct in6_addr) .

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При ошибке возвращается NULL, а в error_num будет содержаться код ошибки из следующего списка:
HOST_NOT_FOUND

Имя узла или сетевой адрес не найдены.

NO_ADDRESS

Сервер доменных имён распознал сетевой адрес или имя, но не ответил. Это может произойти, если сетевой узел имеет только адреса IPv4, а запрашивалась информация об IPv6, или наоборот.

NO_RECOVERY

Сервер доменных имён возвратил сообщение о постоянной ошибке.

TRY_AGAIN

Сервер доменных имён возвратил сообщение о временной ошибке. Возможно, ответ может быть получен при повторной попытке.

При выполненном запросе возвращается указатель на структуру hostent , содержащую следующие поля:

h_name

Официальное имя данного сетевого узла.

h_aliases

Массив указателей на неофициальные псевдонимы этого же узла. Массив оканчивается указателем null.

h_addrtype

Копия параметра af вызова getipnodebyname () или getipnodebyaddr (). Значение h_addrtype всегда равно AF_INET , если значение af равно AF_INET . Значение h_addrtype всегда равно AF_INET6 , если значение af равно AF_INET6 .

h_length

Это поле равно sizeof(struct in_addr) , если h_addrtype равно AF_INET , и sizeof(struct in6_addr) , если h_addrtype равно AF_INET6 .

h_addr_list

Массив из одного или нескольких указателей на структуры сетевого адреса для сетевого узла. Массив оканчивается указателем null.

СТАНДАРТЫ

Отсутствуют.

ИСТОРИЯ

RFC 2553.

Present in glibc 2.1.91-95, but removed again. Several UNIX-like systems support them, but all call them deprecated.

СМОТРИТЕ ТАКЖЕ

getaddrinfo (3), getnameinfo (3), inet_ntop (3), inet_pton (3)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков .