Provided by: manpages-pl-dev_4.26.0-1_all 

NAZWA
getipnodebyname, getipnodebyaddr, freehostent - określa nazwy i adresy sieciowe stacji
BIBLIOTEKA
Standardowa biblioteka C (libc, -lc)
SKŁADNIA
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
[[przestarzałe]] struct hostent *getipnodebyname(const char *name, int af,
int flags, int *error_num);
[[przestarzałe]] struct hostent *getipnodebyaddr(const void addr[.len],
size_t len, int af,
int *error_num);
[[przestarzałe]] void freehostent(struct hostent *ip);
OPIS
Te funkcje są przestarzałe (i niedostępne w glibc). Zamiast nich należy używać getaddrinfo(3) i
getnameinfo(3).
Funkcje getipnodebyname() i getipnodebyaddr() zwracają nazwy i adresy komputera sieciowego. Wynik jest
wskaźnikiem do struktury o następującej postaci:
struct hostent {
char *h_name;
char **h_aliases;
int h_addrtype;
int h_length;
char **h_addr_list;
};
Funkcje te zastąpiły funkcje gethostbyname(3) i gethostbyaddr(3), które mogły udostępniać jedynie adresy
należące do rodziny adresów sieciowych IPv4. Funkcje getipnodebyname() i getipnodebyaddr() mogą
udostępniać adresy należące do wielu rodzin adresów sieciowych.
W odróżnieniu od funkcji gethostby, funkcje te zwracają wskaźniki do pamięci przydzielonej dynamicznie.
Funkcja freehostent() służy do zwalniania przydzielonej dynamicznie pamięci, gdy wywołujący już nie
potrzebuje struktury hostent.
Argumenty funkcji getipnodebyname()
Funkcja getipnodebyname() wyszukuje adresy sieciowe komputera podanego w argumencie name. Argument af
może zawierać jedną z następujących wartości:
AF_INET
Parametr name wskazuje na adres IPv4 (w postaci czterech rozdzielonych kropkami liczb) lub na
nazwę komputera sieci IPv4.
AF_INET6
Parametr name wskazuje na adres IPv6 (w postaci szesnastkowej) lub na nazwę komputera sieci IPv6.
Parametr flags zawiera dodatkowe opcje. Można podać więcej niż jedną opcję przez wykonanie na nich
bitowego OR. flags powinno być ustawione na 0, gdy żadne opcje nie są potrzebne.
AI_V4MAPPED
Ten znacznik użyty łącznie z AF_INET6 określa, że zapytanie ma dotyczyć adresów IPv4, a nie IPv6;
adresy IPv4 będą odwzorowane na adresy IPv6.
AI_ALL Ten znacznik użyty łącznie z AI_V4MAPPED określa, że zapytanie ma dotyczyć zarówno adresów IPv4,
jak i IPv6. Znalezione adresy IPv4 zostaną odwzorowane na adresy IPv6.
AI_ADDRCONFIG
Ten znacznik użyty łącznie z AF_INET6 oznacza, że dalsze zapytania dotyczące adresów IPv6 nie
powinny być wykonywane, jeżeli system nie ma adresu IPv6 przydzielonego do któregoś z interfejsów
sieciowych, oraz, że dalsze zapytania dotyczące adresów IPv4 nie powinny być wykonywane, jeżeli
system nie ma adresu IPv4 przydzielonego do któregoś z interfejsów sieciowych. Znacznik ten może
zostać użyty samodzielnie lub łącznie ze znacznikiem AI_V4MAPPED.
AI_DEFAULT
Ten znacznik jest równoważny (AI_ADDRCONFIG | AI_V4MAPPED).
Argumenty funkcji getipnodebyaddr()
Funkcja getipnodebyaddr() poszukuje nazwy stacji, której adres sieciowy jest podany w parametrze addr.
Argument af może mieć jedną z następujących wartości:
AF_INET
Parametr addr wskazuje na strukturę struct in_addr; len musi mieć wówczas wartość sizeof(struct
in_addr).
AF_INET6
Parametr addr wskazuje na strukturę struct in6_addr; len musi mieć wówczas wartość sizeof(struct
in6_addr).
WARTOŚĆ ZWRACANA
Gdy wystąpi błąd, zwrócony zostanie NULL, a error_num będzie zawierać kod błędu według następującej
listy:
HOST_NOT_FOUND
Nie znaleziono nazwy lub adresu sieciowego stacji.
NO_ADDRESS
Serwer DNS rozpoznał adres sieciowy lub nazwę stacji, ale nie zwrócił odpowiedzi. Może się to
zdarzyć, gdy komputer ma jedynie adresy IPv4, a zapytanie dotyczyło jedynie informacji o IPv6, lub
odwrotnie.
NO_RECOVERY
Serwer DNS zwrócił błąd trwały.
TRY_AGAIN
Serwer DNS zwrócił błąd tymczasowy. Może udać się następnym razem.
W przypadku pomyślnego wyniku zapytania zwracany jest wskaźnik do struktury hostent zawierającej
następujące pola:
h_name Oficjalna nazwa sieciowa tej stacji.
h_aliases
Tablica wskaźników do nieoficjalnych aliasów tej samej stacji. Tablica jest zakończona wskaźnikiem
NULL.
h_addrtype
Kopia argumentu af funkcji getipnodebyname() lub getipnodebyaddr(3). h_addrtype będzie równe
AF_INET, gdy argument af był równy AF_INET. h_addrtype będzie równe AF_INET6, gdy parametr af był
równy AF_INET6.
h_length
Będzie równe sizeof(struct in_addr), gdy h_addrtype jest równe AF_INET, lub sizeof(struct
in6_addr), gdy h_addrtype jest równe AF_INET6.
h_addr_list
Tablica zawierająca jeden lub więcej wskaźników do struktur adresów sieciowych danego komputera.
Tablica jest zakończona wskaźnikiem NULL.
STANDARDY
Brak.
HISTORIA
RFC 2553.
Obecne w glibc 2.1.91-95, ale ponownie usunięte. Obsługują je niektóre systemy uniksopodobne, lecz
wszystkie traktują je jako niezalecane.
ZOBACZ TAKŻE
getaddrinfo(3), getnameinfo(3), inet_ntop(3), inet_pton(3)
TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz
<ankry@green.mf.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać
zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ
ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-
list@lists.sourceforge.net.
Linux man-pages 6.9.1 2 maja 2024 r. getipnodebyname(3)