Provided by: manpages-pl-dev_20060617-1_all bug

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)