.\" -*- coding: UTF-8 -*- .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References: RFC 2553 .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getipnodebyname 3 "21 сентября 2025 г." "Linux man\-pages 6.18" .SH НАИМЕНОВАНИЕ getipnodebyname, getipnodebyaddr, freehostent \- возвращают сетевые имена и адреса машины .SH БИБЛИОТЕКА Стандартная библиотека языка C (\fIlibc\fP,\ \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP \fB#include \fP \fB#include \fP .P \fB[[deprecated]] struct hostent *getipnodebyname(const char *\fP\fIname\fP\fB, int \fP\fIaf\fP\fB,\fP \fB int \fP\fIflags\fP\fB, int *\fP\fIerror_num\fP\fB);\fP \fB[[deprecated]] struct hostent *getipnodebyaddr(\fPsize_t size; \fB const void \fP\fIaddr\fP\fB[\fP\fIsize\fP\fB],\fP \fB size_t \fP\fIsize\fP\fB, int \fP\fIaf\fP\fB,\fP \fB int *\fP\fIerror_num\fP\fB);\fP \fB[[deprecated]] void freehostent(struct hostent *\fP\fIip\fP\fB);\fP .fi .SH ОПИСАНИЕ Эти функции устарели (и недоступны в glibc). Используйте вместо них функции \fBgetaddrinfo\fP(3) и \fBgetnameinfo\fP(3). .P Функции \fBgetipnodebyname\fP() и \fBgetipnodebyaddr\fP() возвращают имена и адреса машины в сети. Эти функции возвращают указатель на следующую структуру: .P .in +4n .EX struct hostent { char *h_name; char **h_aliases; int h_addrtype; int h_length; char **h_addr_list; }; .EE .in .P Эти функции заменяют функции \fBgethostbyname\fP(3) и \fBgethostbyaddr\fP(3), которые могут возвращать только сетевые адреса семейства IPv4. Функции \fBgetipnodebyname\fP() и \fBgetipnodebyaddr\fP() могут осуществлять доступ к нескольким семействам сетевых адресов. .P В отличие от функций \fBgethostby\fP эти функции возвращают указатели на динамически выделяемую память. Функция \fBfreehostent\fP() используется для освобождения динамически выделенной памяти после того, как надобность в структуре \fIhostent\fP отпадёт. .SS "Параметры getipnodebyname()" Функция \fBgetipnodebyname\fP() ищет сетевой адрес узла, указанного в параметре \fIname\fP. В параметре \fIaf\fP указывается одно из следующих значений: .TP \fBAF_INET\fP Параметр \fIname\fP указывает на адрес IPv4 в точечной нотации или на имя сетевого узла IPv4. .TP \fBAF_INET6\fP Параметр \fIname\fP указывает на шестнадцатеричный адрес IPv6 или на имя сетевого узла IPv6. .P В аргументе \fIflags\fP указываются дополнительные параметры. Возможно указать более одного параметра с помощью логического сложения (OR). Если параметры не требуются, то значение \fIflags\fP должно быть равно нулю. .TP \fBAI_V4MAPPED\fP Этот флаг используется с \fBAF_INET6\fP для запроса адресов IPv4 вместо адресов IPv6; адрес IPv4 будет отображён в адрес IPv6. .TP \fBAI_ALL\fP Это флаг используется с \fBAI_V4MAPPED\fP для запроса одновременно адресов IPv4 и IPv6. Любой найденный адрес IPv4 будет отображён в адрес IPv6. .TP \fBAI_ADDRCONFIG\fP Этот флаг используется с \fBAF_INET6\fP и указывает, что запросы адресов IPv6 не должны производиться, если система не имеет хотя бы одного адреса IPv6, присвоенного сетевому интерфейсу, а также, что запросы адресов IPv4 не должны производиться, если система не имеет хотя бы одного адреса IPv4, присвоенного сетевому интерфейсу. Флаг может быть использован сам по себе или вместе с флагом \fBAI_V4MAPPED\fP. .TP \fBAI_DEFAULT\fP Этот флаг эквивалентен \fB(AI_ADDRCONFIG | AI_V4MAPPED)\fP. .SS "Параметры getipnodebyaddr()" Функция \fBgetipnodebyaddr\fP() ищет имя узла, чей сетевой адрес указан в параметре \fIaddr\fP. В параметре \fIaf\fP указывается одно из следующих значений: .TP \fBAF_INET\fP The \fIaddr\fP argument points to a \fIstruct in_addr\fP and \fIsize\fP must be set to \fIsizeof(struct in_addr)\fP. .TP \fBAF_INET6\fP The \fIaddr\fP argument points to a \fIstruct in6_addr\fP and \fIsize\fP must be set to \fIsizeof(struct in6_addr)\fP. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При ошибке возвращается NULL, а в \fIerror_num\fP будет содержаться код ошибки из следующего списка: .TP \fBHOST_NOT_FOUND\fP Имя узла или сетевой адрес не найдены. .TP \fBNO_ADDRESS\fP Сервер доменных имён распознал сетевой адрес или имя, но не ответил. Это может произойти, если сетевой узел имеет только адреса IPv4, а запрашивалась информация об IPv6, или наоборот. .TP \fBNO_RECOVERY\fP Сервер доменных имён возвратил сообщение о постоянной ошибке. .TP \fBTRY_AGAIN\fP Сервер доменных имён возвратил сообщение о временной ошибке. Возможно, ответ может быть получен при повторной попытке. .P При выполненном запросе возвращается указатель на структуру \fIhostent\fP, содержащую следующие поля: .TP \fIh_name\fP Официальное имя данного сетевого узла. .TP \fIh_aliases\fP Массив указателей на неофициальные псевдонимы этого же узла. Массив оканчивается указателем null. .TP \fIh_addrtype\fP Копия параметра \fIaf\fP вызова \fBgetipnodebyname\fP() или \fBgetipnodebyaddr\fP(). Значение \fIh_addrtype\fP всегда равно \fBAF_INET\fP, если значение \fIaf\fP равно \fBAF_INET\fP. Значение \fIh_addrtype\fP всегда равно \fBAF_INET6\fP, если значение \fIaf\fP равно \fBAF_INET6\fP. .TP \fIh_length\fP Это поле равно \fIsizeof(struct in_addr)\fP, если \fIh_addrtype\fP равно \fBAF_INET\fP, и \fIsizeof(struct in6_addr)\fP, если \fIh_addrtype\fP равно \fBAF_INET6\fP. .TP \fIh_addr_list\fP Массив из одного или нескольких указателей на структуры сетевого адреса для сетевого узла. Массив оканчивается указателем null. .SH СТАНДАРТЫ Отсутствуют. .SH ИСТОРИЯ .\" Not in POSIX.1-2001. RFC\ 2553. .P Present in glibc 2.1.91\-95, but removed again. Several UNIX\-like systems support them, but all call them deprecated. .SH "СМОТРИТЕ ТАКЖЕ" \fBgetaddrinfo\fP(3), \fBgetnameinfo\fP(3), \fBinet_ntop\fP(3), \fBinet_pton\fP(3) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Azamat Hackimov , Dmitry Bolkhovskikh , Vladislav , Yuri Kozlov и Иван Павлов . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT debian-l10n-russian@lists.debian.org списка рассылки русских переводчиков .ME .