Provided by: manpages-de-dev_1.4-1_all bug

BEZEICHNUNG

       gethostbyname,   gethostbyaddr,   sethostent,  gethostent,  endhostent,  h_errno,  herror,
       hstrerror,    gethostbyaddr_r,    gethostbyname2,    gethostbyname2_r,    gethostbyname_r,
       gethostent_r - ermittelt den Netzwerkeintrag für einen Host

ÜBERSICHT

       #include <netdb.h>
       extern int h_errno;

       struct hostent *gethostbyname(const char *name);

       #include <sys/socket.h>       /* für AF_INET */
       struct hostent *gethostbyaddr(const void *addr,
                                     socklen_t len, int type);

       void sethostent(int stayopen);

       void endhostent(void);

       void herror(const char *s);

       const char *hstrerror(int err);

       /* System V/POSIX-Erweiterung */
       struct hostent *gethostent(void);

       /* GNU-Erweiterungen */
       struct hostent *gethostbyname2(const char *name, int af);

       int gethostent_r(
               struct hostent *ret, char *buf, size_t buflen,
               struct hostent **result, int *h_errnop);

       int gethostbyaddr_r(const void *addr, socklen_t len, int type,
               struct hostent *ret, char *buf, size_t buflen,
               struct hostent **result, int *h_errnop);

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

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

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       gethostbyname2(), gethostent_r(), gethostbyaddr_r(), gethostbyname_r(),
       gethostbyname2_r():
           _BSD_SOURCE || _SVID_SOURCE

       herror(), hstrerror():
           Seit Glibc 2.12:
               _BSD_SOURCE || _SVID_SOURCE
           From glibc 2.8 to glibc 2.11:
               _BSD_SOURCE || _SVID_SOURCE || _GNU_SOURCE
           Vor Glibc 2.8:
               keine

       h_errno:
           Seit Glibc 2.12:
               _BSD_SOURCE || _SVID_SOURCE ||
                   (_POSIX_C_SOURCE < 200809L && _XOPEN_SOURCE < 700)
           Bis Glibc 2.12:
               keine

BESCHREIBUNG

       The gethostbyname*(), gethostbyaddr*(), herror(), and hstrerror()  functions are obsolete.
       Applications should use getaddrinfo(3), getnameinfo(3), and gai_strerror(3)  instead.

       Die  Funktion  gethostbyname() gibt eine Struktur vom Typ hostent für den angegebenen Host
       name  zurück.  Darin  ist  name  entweder  ein  Host-Name,  eine   IPv4-Adresse   in   der
       Standard-Punktnotation    (wie    für    inet_addr(3))    oder    eine   IPv6-Adresse   in
       Doppelpunktnotation  (und  womöglich  auch  in  Punktnation;  siehe   RFC 1884   für   die
       Beschreibung  von  IPv6-Adressen). Falls name eine IPv4- oder IPv6-Adresse ist, wird nicht
       gesucht und gethostbyname() kopiert einfach nur den namen  und  dessen  Äquivalent  struct
       in_addr  in das Feld h_addr_list[0] der zurückgegebenen hostent-Struktur. Falls name nicht
       mit einem Punkt endet und die Umgebungsvariable HOSTALIASES gesetzt ist, wird  zuerst  die
       von  HOSTALIASES bestimmte Aliasdatei nach dem namen durchsucht (siehe hostname(7) für das
       Dateiformat). Falls der name nicht mit einem Punkt endet, werden die aktuelle  Domain  und
       ihre übergeordneten Domains durchsucht.

       Die  Funktion  gethostbyaddr()  gibt für die angegebene Adresse addr eine Struktur vom Typ
       hostent mit der Länge len und dem Adresstyp type zurück. Gültige Adresstypen sind  AF_INET
       und  AF_INET6.  Das  Argument  addr  ist  ein  Zeiger auf eine Struktur, die vom Adresstyp
       abhängt, beispielsweise eine struct in_addr * (möglicherweise ermittelt durch einen Aufruf
       von inet_addr(3)) für den Adresstyp AF_INET.

       Die  Funktion  sethostent()  legt  fest,  falls stayopen wahr (1) ist, dass ein bestehende
       TCP-Verbindung für Nameserveranfragen genutzt werden soll und dass die Verbindung für  die
       nachfolgenden  Anfragen  offen  bleiben  soll.  Ansonsten  werden  für  Nameserveranfragen
       UDP-Datagramme benutzt.

       Die   Funktion   endhostent()   beendet   die    Nutzung    einer    TCP-Verbindung    für
       Namerserveranfragen.

       Die  Funktion herror() gibt die zum aktuellen Wert von h_errno gehörende Fehlermeldung auf
       stderr aus.

       Die obsolete Funktion hstrerror() ermittelt zu einer  Fehlernummer  (normalerweiseh_errno)
       die zugehörige Zeichenkette mit der Fehlermeldung.

       Die  Funktionen  gethostbyname()  und  gethostbyaddr()  benutzen  für  ihre  Anfragen  den
       Nameserver named(8), eine Zeile aus der  Datei  /etc/hosts  und  den  Network  Information
       Service  (NIS  oder  YP).  Was davon und in welcher Reihenfolge benutzt wird, bestimmt die
       order-Zeile in der Datei /etc/host.conf. Das Standardverhalten ist zuerst  den  Nameserver
       zu befragen und danach die Datei /etc/hosts zu durchsuchen.

       Die Struktur hostent ist in <netdb.h> wie folgt definiert:

           struct hostent {
               char  *h_name;            /* offizieller Name des Rechners */
               char **h_aliases;         /* Aliasliste */
               int    h_addrtype;        /* Host-Adresstyp */
               int    h_length;          /* Länge der Adresse */
               char **h_addr_list;       /* Adressliste */
           }
           #define h_addr h_addr_list[0] /* für Abwärtskompatibilität */

       Die Elemente der hostent-Struktur sind:

       h_name der offizielle Name des Rechners

       h_aliases
              ein null-terminiertes Feld mit den alternativen Namen des Rechners

       h_addrtype
              der Adresstyp, z.Zt. immer AF_INET oder AF_INET6

       h_length
              die Länge der Adresse in Bytes

       h_addr_list
              ein null-terminiertes Feld von Zeigern auf Netzwerkadressen für den Rechner (in der
              Netzwerk-Bytereihenfolge), gefolgt von einem NULL-Pointer

       h_addr die erste Adresse in h_addr_list, für Abwärtskompatibilität

RÜCKGABEWERT

       Die Funktionen gethostbyname() und gethostbyaddr() geben eine hostent-Struktur zurück. Bei
       einem  Fehler  wird  ein  NULL-Zeiger  zurückgegeben,  in diesem Fall enthält die Variable
       h_errno die Fehlernummer. Falls der Zeiger von NULL verschieden ist, kann der Rückgabewert
       auf statische Daten weisen; siehe die folgenden Anmerkungen.

FEHLER

       Die Variable h_errno kann folgende Werte annehmen:

       HOST_NOT_FOUND
              Der angegebene Rechner ist unbekannt.

       NO_ADDRESS oder NO_DATA
              Der angegebene Name ist gültig, aber es existiert dazu keine IP-Adresse.

       NO_RECOVERY
              Ein nichtbehebbarer Nameserverfehler ist aufgetreten.

       TRY_AGAIN
              Beim  maßgebenden  Nameserver ist ein vorübergehender Fehler aufgetreten. Versuchen
              Sie es später noch einmal.

DATEIEN

       /etc/host.conf
              Konfigurationsdatei des Resolvers (Namensauflöser)

       /etc/hosts
              Host-Datenbankdatei

       /etc/nsswitch.conf
              Konfigurationsdatei für »name service switch«

KONFORM ZU

       POSIX.1-2001  beschreibt  gethostbyname(),  gethostbyaddr(),  sethostent(),  endhostent(),
       gethostent()  und  h_errno;  gethostbyname(),  gethostbyaddr()  und h_errno sind in diesem
       Standard als allmählich außer Gebrauch kommend  gekennzeichnet.POSIX.1-2008  entfernt  die
       Beschreibungen  von  gethostbyname(), gethostbyaddr() nd h_errno und empfiehlt stattdessen
       die Verwendung von getaddrinfo(3) und getnameinfo(3).

ANMERKUNGEN

       Die Funktionen gethostbyname() und  gethostbyaddr()  können  Zeiger  auf  statische  Daten
       zurückgeben,  welche  bei späteren Aufrufen überschrieben werden könnten. Das Kopieren von
       struct hostent ist nicht  ausreichend,  weil  sie  Zeiger  enthält.  Es  ist  ein  »tiefes
       Kopieren« erforderlich.

       In  der  ursprünglichen  BSD-Implementierung von gethostbyname() war das Argument  len ein
       int. Der Standard SUSv2 ist fehlerhaft und weist dem Argument len von gethostbyaddr()  den
       Typ  size_t  zu.  (Das ist falsch, weil es int sein muss und das für size_t nicht der Fall
       ist. POSIX.1-2001 macht es zusocklen_t, was in Ordnung ist.) Siehe auch accept(2).

       Der BSD-Prototyp für gethostbyaddr() verwendet const char * als  Datentyp  für  das  erste
       Argument.

   System V/POSIX-Erweiterung
       POSIX  verlangt  den  Aufruf  von  gethostent(),  welcher  den  nächsten  Eintrag  in  der
       Host-Datenbank zurückgeben sollte. Bei der Verwendung von DNS/BIND macht  das  nicht  viel
       Sinn,  aber  es  kann sinnvoll sein, wenn die Host-Datenbank eine Datei ist, die Zeile für
       Zeile gelesen werden kann. Auf vielen Systemen liest eine Routine mit diesem Namen aus der
       Datei /etc/hosts. Sie ist nur verfügbar, wenn die Bibliothek ohne DNS-Unterstützung gebaut
       wurde.   Die   Glibc-Version   ignoriert   Ipv6-Einträge.   Diese   Funktion   ist   nicht
       ablaufinvariant. Glibc stellt die ablaufinvariante Version gethostent_r() bereit.

   GNU-Erweiterungen
       Glibc2 enthält auch gethostbyname2(), welche wie gethostbyname() arbeitet, ermöglicht aber
       die Vorgabe der Adressfamilie, zu der die Adresse gehören muss.but permits to specify  the
       address family to which the address must belong.

       Glibc2   hat   auch  ablaufinvariante  Versionen  von  gethostent_r(),  gethostbyaddr_r(),
       gethostbyname_r() und gethostbyname2_r(). Der  Aufrudende  stellte  eine  hostent-Struktur
       ret,  die  bei  Erfolg  ausgefüllt  wird, und einen temporären Arbeitspuffer buf der Größe
       buflen bereits. Nach dem Aufruf zeigt bei Erfolg result zu dem Ergebnis.  Im  Falle  eines
       Fehlers  oder  wenn  kein Eintrag gefunden wird, ist result NULL. Die Funktionen liefern 0
       bei Erfolg und bei einem Fehler eine von null verschiedene Fehlernummer. Zusätzlich zu den
       Fehlern,  die  von  den  nicht ablaufinvarianten Versionen dieser Funktionen zurückgegeben
       werden, melden dieses Funktionen den Fehler ERANGE, falls buf zu klein war. In diesem Fall
       sollte  der  Aufruf  mit  einem  größeren  Puffer  wiederholt werden. Die globale Variable
       h_errno wird nicht verändert,  aber  die  Adresse  einer  Variablen  zur  Speicherung  von
       Fehlernummern wird in h_errnop übergeben.

FEHLER

       gethostbyname() erkennt in IPv4-Adresszeichenketten in Punktnotation keine Bestandteile in
       hexadezimaler Notation.

SIEHE AUCH

       getaddrinfo(3),  getnameinfo(3),   inet(3),   inet_ntop(3),   inet_pton(3),   resolver(3),
       hosts(5), nsswitch.conf(5), hostname(7), named(8)

KOLOPHON

       This  page  is  part  of release 3.54 of the Linux man-pages project. A description of the
       project,    and    information    about    reporting    bugs,    can    be    found     at
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die   deutsche   Übersetzung  dieser  Handbuchseite  wurde  von  Martin  Eberhard  Schauer
       <Martin.E.Schauer@gmx.de> erstellt.

       Diese Übersetzung ist Freie Dokumentation;  lesen  Sie  die  GNU  General  Public  License
       Version   3  oder  neuer  bezüglich  der  Copyright-Bedingungen.  Es  wird  KEINE  HAFTUNG
       übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an <debian-l10n-german@lists.debian.org>.

                                        4. September 2013                        GETHOSTBYNAME(3)