Linux.pl
Opcje wyszukiwania podręcznika man:
Lista stron man zaczynających się od znaku:
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   ALPHA   NUM   OTHER   ALL
GETHOSTBYNAME(3)        Podręcznik programisty Linuksa        GETHOSTBYNAME(3)

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
       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 śred-
       nikami  (i być może kropkami). (Proszę przeczytać RFC 1984, aby uzyskać
       opis adresów IPv6).  Jeżeli nazwa jest adresem Ipv4 lub IPv6, to  geth-
       ostbyname() 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. (for-
       mat 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  serw-
       era  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 gethost-
       byaddr() 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 gethostby-
       name(), 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 gethostby-
       name2_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ą prze-
       chowywane 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 mody-
       fikowana, 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)

BSD                               2000-08-12                  GETHOSTBYNAME(3)

Time taken: 0.00033 seconds


Created with the man page lookup class by Andrew Collington, php@amnuts.com