Provided by: manpages-pl-dev_0.5-1_all bug

NAZWA

       gethostbyname,  gethostbyaddr,  sethostent,  endhostent,  herror,  hstrerror  - zwróć wpis
       sieciowy komputera

SKŁADNIA

       #include <netdb.h>
       extern int h_errno;

       struct hostent *gethostbyname(const char *nazwa);

       #include <sys/socket.h>        /* dla AF_INET */
       struct hostent *gethostbyaddr(const char *adres,
         int dlug, int typ);

       void sethostent(int stayopen);

       void endhostent(void);

       void herror(const char *s);

       const char *hstrerror(int err);

       /* rozszerzenia GNU */
       struct hostent *gethostbyname2(const char *nazwa, int af);

       int gethostbyname_r (const char *nazwa,
         struct hostent *ret, char *buf, size_t buflen,
         struct hostent **result, int *h_errnop);

       int gethostbyname2_r (const char *nazwa, int af,
         struct hostent *ret, char *buf, size_t buflen,
         struct hostent **result, int *h_errnop);

OPIS

        Uwaga! To tłumaczenie może być nieaktualne!

       Funkcja gethostbyname() dla danego komputera nazwa  zwraca strukturę typu  hostent.  Nazwa
       jest tutaj albo nazwą komputera, albo adresem IPv4 w standardowej notacji z kropkami, albo
       adresem IPv6 w notacji ze średnikami (i być może kropkami). (Proszę przeczytać  RFC  1984,
       aby   uzyskać   opis  adresów  IPv6).   Jeżeli  nazwa  jest  adresem  Ipv4  lub  IPv6,  to
       gethostbyname() nie wykonuje żadnych sprawdzeń i po prostu kopiuje nazwę  do  pola  h_name
       oraz  jej  odpowiednik  struct in_addr do pola h_addr_list[0] zwracanej struktury hostent.
       Jeżeli nazwa nie kończy się kropką oraz ustawiono  zmienną  środowiskową  HOSTALIASES,  to
       wyszukiwanie  nazwy  zacznie  się  od  pliku  z  aliasami, wskazywanego przez HOSTALIASES.
       (format tego pliku opisany jest w hostname(7)).  Bieżąca domenta i jej domeny nadrzędne są
       przeszukiwane, chyba że nazwa kończy się kropką.

       Funkcja  gethostbyaddr()  zwraca  strukturę   typu  hostent  dla  zadanego  adresu adres o
       długości dlug i typie adresu typ. Obecnie jedynym poprawnym typem adresu jest AF_INET.

       Funkcja sethostent() określa, jeżeli  stayopen  jest  prawdziwe  (1),  że  do  odpytywania
       serwera  nazw będzie użyte połączenie TCP i to połączenie będzie otwarte podczas kolejnych
       zapytań. W przeciwnym wypadku serwer nazw będzie odpytywany przy użyciu datagramów UDP.

       Funkcja endhostent() kończy połączenie TCP odpytywania serwera nazw.

       (Przestarzała) funkcja herror() wypisuje na standardowe  wyjście  błędów  komunikat  błędu
       przypisany do bieżącej wartości zmiennej h_errno.

       (Przestarzała)  funkcja  hstrerror()  dla  przekazanego  numeru  błędu (zazwyczaj h_errno)
       zwraca odpowiadający mu komunikat błędu.

       Funkcje gethostbyname()  i  gethostbyaddr()  używają  do  odpytywania  serwera  kombinacji
       któregokolwiek  bądź  wszystkich  serwerów nazw named(8), wydzielonych linii z /etc/hosts,
       oraz Systemu Informacji Sieciowej (Network Information Service - NIS lub YP), w zależności
       od  zawartości  linii  order  w  pliku  /etc/host.conf.   (Proszę  przeczytać resolv+(8)).
       Domyślnie  najpierw  odpytywane  są  serwery  named(8),  a  następnie   przeglądany   jest
       /etc/hosts.

       Struktura hostent zdefiniowana w <netdb.h> następująco:

              struct hostent {
                      char    *h_name;        /* oficjalna nazwa komputera */
                      char    **h_aliases;    /* lista aliasów */
                      int     h_addrtype;     /* typ adresu komputera */
                      int     h_length;       /* długość adresu */
                      char    **h_addr_list;  /* lista adresów */
              }
              #define h_addr  h_addr_list[0]  /* dla zachowania zgodności  */
                                              /* z wcześniejszymi wersjami */

       Struktra hostent składa się z:

       h_name Oficjalna nazwa komputera.

       h_aliases
              Zakończona zerem tablica alternatywnych nazw komputera.

       h_addrtype
              Typ adresu; obecnie zawsze jest to AF_INET.

       h_length
              Długość adresu w bajtach.

       h_addr_list
              Zakończona  zerem  tablica adresów sieciowych komputera w sieciowym porządku bajtów
              (network byte order).

       h_addr Pierwszy adres z h_addr_list - dla zachowania zgodności ze wcześniejszymi wersjami

WARTOŚĆ ZWRACANA

       Funkcje gethostbyname() i gethostbyaddr() zwracają strukturę hostent lub wskaźnik  NULL  w
       przypadku błędu. W razie błędu, zmienna h_errno przechowuje numer błędu.

BŁĘDY

       Zmienna h_errno może przyjmować następujące wartości:

       HOST_NOT_FOUND
              Podany komputer jest nieznany.

       NO_ADDRESS lub NO_DATA
              Żądana nazwa jest poprawna, ale nie ma adresu IP.

       NO_RECOVERY
              Wystąpił trwały błąd serwera nazw.

       TRY_AGAIN
              Autorytatywny  serwer  nazw  zwrócił  tymczasowy  błąd.  Proszę  spróbować ponownie
              później.

PLIKI

       /etc/host.conf
              plik konfiguracyjny resolver configuration file

       /etc/hosts
              plik bazy danych komputerów

ZGODNE Z

       BSD 4.3.

UWAGI

       Standard SUS-v2 jest błędny i określa parametr len funkcji gethostbyaddr() jako mający typ
       size_t.   (No  nie  jest  właściwe,  ponieważ musi to być typ int, którym size_t nie jest.
       POSIX 1003.1-2001 używa socklen_t, co jest OK)

       Funkcje gethostbyname() i gethostbyaddr() mogą zwracać wskaźniki  do  danych  statycznych,
       które mogą być nadpisane przez kolejne wywołania. Kopiowanie struct hostent nie wystarcza,
       ponieważ zawiera ona wskaźniki - wymagane jest skopiowanie wszystkiego.

       Glibc2 ma także funkcję gethostbyname2(), która działa jak  gethostbyname(),  ale  pozwala
       określić rodzinę adresów, do której musi należeć zadany adres.

       Glibc2  ma także wielowątkowe wersje gethostbyname_r() i gethostbyname2_r().  Zwracają one
       0 w przypadku powodzenia i niezero w razie  błędu.  Wynik  funkcji  jest  przechowywany  w
       strukturze  o  adresie  ret.   Po wywołaniu funkcji *result będzie NULL w razie błędu albo
       wskaźnikiem  do  wyniku,  gdy  funkcja  zakończy  się  powodzeniem.  Pomocnicze  dane   są
       przechowywane  w buforze buf o długości buflen.  (Jeżeli bufor jest za mały, to funkcje te
       zwrócą ERANGE.)  Globalna zmienna h_errno nie jest  modyfikowana,  ale  numer  błędu  jest
       przekazywany w zmiennej, której adres został podany w h_errnop.

       POSIX 1003.1-2001 traktuje gethostbyaddr() i gethostbyname() jako spuściznę i wprowadza

       struct hostent *getipnodebyaddr (const void *restrict addr,
         socklen_t len, int type, int *restrict error_num);

       struct hostent *getipnodebyname (const char *name,
         int type, int flags, int *error_num);

ZOBACZ TAKŻE

       resolver(3), hosts(5), hostname(7), resolv+(8), named(8)

INFORMACJE O TŁUMACZENIU

       Powyższe  tłumaczenie  pochodzi  z nieistniejącego już Projektu Tłumaczenia Manuali i może
       nie być aktualne. W  razie  zauważenia  różnic  między  powyższym  opisem  a  rzeczywistym
       zachowaniem  opisywanego  programu  lub  funkcji,  prosimy  o  zapoznanie się z oryginalną
       (angielską) wersją strony podręcznika za pomocą polecenia:

              man --locale=C 3 gethostbyname

       Prosimy o pomoc w aktualizacji stron man - więcej informacji  można  znaleźć  pod  adresem
       http://sourceforge.net/projects/manpages-pl/.