Provided by: manpages-pl-dev_4.13-4_all bug

NAZWA

       getipnodebyname,  getipnodebyaddr,  freehostent  -  określenie  nazw  i adresów sieciowych
       maszyny

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  (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 maszyny, 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 maszyny.

       NO_ADDRESS
              Serwer DNS rozpoznał adres sieciowy lub nazwę maszyny, ale nie zwrócił  odpowiedzi.
              Może  się  to  zdarzyć,  gdy  maszyn  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 następnym razem będzie więcej szczęścia.

       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 maszyny.

       h_aliases
              Tablica  wskaźników  do  nieoficjalnych  aliasów  tej  samej  maszyny. 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.

ZGODNE Z

       RFC 2553.

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.

ZOBACZ TAKŻE

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

O STRONIE

       Angielska  wersja  tej  strony  pochodzi  z  wydania  5.10  projektu Linux man-pages. Opis
       projektu, informacje dotyczące zgłaszania błędów oraz  najnowszą  wersję  oryginału  można
       znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

T◈UMACZENIE

       Autorami  polskiego  tłumaczenia  niniejszej strony podręcznika są: Andrzej Krzysztofowicz
       <ankry@green.mf.pg.gda.pl> i Robert Luberda <robert@debian.org>

       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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.