Provided by:
manpages-pl-dev_20060617-1_all 
NAZWA
getipnodebyname, getipnodebyaddr, freehostent - określenie nazw i
adresów sieciowych hosta
SKŁADNIA
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
struct hostent *getipnodebyname(const char *name,
int af, int flags,
int *error_num);
struct hostent *getipnodebyaddr(const void *addr,
size_t len, int af,
int *error_num);
void freehostent(struct hostent *ip);
OPIS
Te funkcje są przestarzałe. Zamiast nich należy używać getaddrinfo(3) i
getnameinfo(3).
Funkcje getipnodebyname(3) i getipnodebyaddr(3) zwracają nazwy i adresy
hosta 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(3) i getipnodebyaddr(3) 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(3) służy do
zwalniania przydzielonej dynamicznie pamięci, gdy wywołujący już nie
potrzebuje struktury hostent.
parametry getipnodebyname
Funkcja getipnodebyname(3) wyszukuje adresy sieciowe hosta podanego w
parametrze name. Parametr 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ę hosta sieci IPv4.
AF_INET6
Parametr name wskazuje na adres IPv6 (w postaci szesnastkowej)
lub na nazwę hosta sieci IPv6.
Parametr flags zawiera dodatkowe opcje. Można podać więcej niż jedną
opcję poprzez wykonanie na nich logicznego 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 posiada 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
posiada 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_ALL Ten znacznik jest równoważny (AI_ADDRCONFIG | AI_V4MAPPED).
parametry getipnodebyaddr
Funkcja getipnodebyaddr(3) poszukuje nazwy hista, którego adres
sieciowy jest podany w parametrze addr. Parametr 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 wskaźnik 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 hosta.
NO_ADDRESS
Serwer DNS rozpoznał adres sieciowy lub nazwę hosta, ale nie
zwrócił odpowiedzi. Może się to zdarzyć, gdy host posiada
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 następnym razem bedzie
więcej szczęścia.
W przypadku pomyślnego wyniku zapytania zwraca ny jest wskaźnik do
struktury hostent zawierającej następujące pola:
h_name Oficjalna nazwa tego hosta.
h_aliases
Tablica wskaźników do nieoficjalnych aliasów tego samego hosta.
Tablica jest zakończona wskaźnikiem NULL.
h_addrtype
Kopia parametru af funkcji getipnodebyname(3) lub
getipnodebyaddr(3). h_addrtype będzie równe AF_INET, gdy
parametr 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 a 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 hosta. Tablica jest zakończona
wskaźnikiem NULL.
UWAGI
Funkcje te były obecne w glibc 2.1.91-95, ale zostały ponownie
usunięte. Wspierają je niektóre systemy uniksopodobne, lecz wszystkie
traktują te funkcje jako niezalecane.
ZGODNE Z
RFC 2553.
ZOBACZ TAKŻE
getaddrinfo(3), getnameinfo(3), inet_ntop(3), inet_pton(3)