.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified 1993-05-22, David Metcalfe .\" Modified 1993-07-25, Rik Faith (faith@cs.unc.edu) .\" Modified 1997-02-16, Andries Brouwer (aeb@cwi.nl) .\" Modified 1998-12-21, Andries Brouwer (aeb@cwi.nl) .\" Modified 2000-08-12, Andries Brouwer (aeb@cwi.nl) .\" Modified 2001-05-19, Andries Brouwer (aeb@cwi.nl) .\" Modified 2002-08-05, Michael Kerrisk .\" Modified 2004-10-31, Andries Brouwer .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH gethostbyname 3 "5. Februar 2023" "Linux man\-pages 6.03" .SH 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 .SH BIBLIOTHEK Standard\-C\-Bibliothek (\fIlibc\fP, \fI\-lc\fP) .SH ÜBERSICHT .nf \fB#include \fP .PP \fBvoid sethostent(int \fP\fIoffenhalten\fP\fB);\fP \fBvoid endhostent(void);\fP .PP \fB[[veraltet]] extern int h_errno;\fP .PP \fB[[veraltet]] struct hostent *gethostbyname(const char *\fP\fIname\fP\fB);\fP \fB[[veraltet]] struct hostent *gethostbyaddr(const void \fP\fIAdr\fP\fB[.\fP\fIlen\fP\fB],\fP \fB socklen_t \fP\fILänge\fP\fB, int \fP\fITyp\fP\fB);\fP .PP \fB[[veraltet]] void herror(const char *\fP\fIs\fP\fB);\fP \fB[[veraltet]] const char *hstrerror(int \fP\fIfehler\fP\fB);\fP .PP /* System V\-/POSIX\-Erweiterung */ \fBstruct hostent *gethostent(void);\fP .PP /* GNU\-Erweiterungen */ \fB[[veraltet]]\fP \fBstruct hostent *gethostbyname2(const char *\fP\fIname\fP\fB, int \fP\fIaf\fP\fB);\fP .PP \fBint gethostent_r(struct hostent *restrict \fP\fIret\fP\fB,\fP \fB char \fP\fIPuffer\fP\fB[restrict .\fP\fIPufflän\fP\fB], size_t \fP\fIPufflän\fP\fB,\fP \fB struct hostent **restrict \fP\fIergebnis\fP\fB,\fP \fB int *restrict \fP\fIh_errnop\fP\fB);\fP .PP \fB[[veraltet]]\fP \fBint gethostbyaddr_r(const void \fP\fIAdr\fP\fB[restrict .\fP\fIlen\fP\fB], socklen_t \fP\fILänge\fP\fB,\fP \fB int \fP\fITyp\fP\fB,\fP \fB struct hostent *restrict \fP\fIret\fP\fB,\fP \fB char \fP\fIbuf\fP\fB[restrict .\fP\fIPufflän\fP\fB], size_t \fP\fIPufflän\fP\fB,\fP \fB struct hostent **restrict \fP\fIergebnis\fP\fB,\fP \fB int *restrict \fP\fIh_errnop\fP\fB);\fP \fB[[veraltet]]\fP \fBint gethostbyname_r(const char *restrict \fP\fIname\fP\fB,\fP \fB struct hostent *restrict \fP\fIret\fP\fB,\fP \fB char \fP\fIbuf\fP\fB[restrict .\fP\fIPufflän\fP\fB], size_t \fP\fIPufflän\fP\fB,\fP \fB struct hostent **restrict \fP\fIergebnis\fP\fB,\fP \fB int *restrict \fP\fIh_errnop\fP\fB);\fP \fB[[veraltet]]\fP \fBint gethostbyname2_r(const char *restrict \fP\fIname\fP\fB, int \fP\fIaf,\fP \fB struct hostent *restrict \fP\fIret\fP\fB,\fP \fB char \fP\fIbuf\fP\fB[restrict .\fP\fIPufflän\fP\fB], size_t \fP\fIPufflän\fP\fB,\fP \fB struct hostent **restrict \fP\fIergebnis\fP\fB,\fP \fB int *restrict \fP\fIh_errnop\fP\fB);\fP .fi .PP .RS -4 Mit Glibc erforderliche Feature\-Test\-Makros (siehe \fBfeature_test_macros\fP(7)): .RE .PP \fBgethostbyname2\fP(), \fBgethostent_r\fP(), \fBgethostbyaddr_r\fP(), \fBgethostbyname_r\fP(), \fBgethostbyname2_r\fP(): .nf Seit Glibc 2.19: _DEFAULT_SOURCE Glibc bis zu einschließlich 2.19: _BSD_SOURCE || _SVID_SOURCE .fi .PP \fBherror\fP(), \fBhstrerror\fP(): .nf Seit Glibc 2.19: _DEFAULT_SOURCE Glibc 2.8 bis 2.19: _BSD_SOURCE || _SVID_SOURCE Vor Glibc 2.8: none .fi .PP \fBh_errno\fP: .nf Seit Glibc 2.19 _DEFAULT_SOURCE || _POSIX_C_SOURCE < 200809L Glibc 2.12 bis 2.19: _BSD_SOURCE || _SVID_SOURCE || _POSIX_C_SOURCE < 200809L Vor Glibc 2.12: none .fi .SH BESCHREIBUNG Die Funktionen \fBgethostbyname*\fP(), \fBgethostbyaddr*\fP(), \fBherror\fP() und \fBhstrerror\fP() sind veraltet. Anwendungen sollten stattdessen \fBgetaddrinfo\fP(3), \fBgetnameinfo\fP(3) und \fBgai_strerror\fP(3) verwenden. .PP Wenn \fIoffenhalten\fP wahr (d.h. 1 ist), legt die Funktion \fBsethostent\fP() fest, dass eine bestehende TCP\-Verbindung für Nameserveranfragen genutzt werden soll und dass die Verbindung für die nachfolgenden Anfragen bestehen bleiben soll. Ansonsten werden für Nameserveranfragen UDP\-Datagramme benutzt. .PP Die Funktion \fBendhostent\fP() beendet die Nutzung einer TCP\-Verbindung für Namerserveranfragen. .PP Die Funktion \fBgethostbyname\fP() gibt eine Struktur vom Typ \fIhostent\fP für den angegebenen Host \fIname\fP zurück. Darin ist \fIname\fP entweder ein Host\-Name oder eine IPv4\-Adresse in der Standard\-Punktnotation. Falls \fIname\fP eine IPv4\-Adresse ist, wird nicht gesucht und \fBgethostbyname\fP() kopiert einfach nur den \fIname\fPn und dessen \fIstruct in_addr\fP\-Äquivalent in das Feld \fIh_addr_list[0]\fP der zurückgegebenen \fIhostent\fP\-Struktur. Falls \fIname\fP nicht mit einem Punkt endet und die Umgebungsvariable \fBHOSTALIASES\fP gesetzt ist, wird zuerst die von \fIHOSTALIASES\fP bestimmte Aliasdatei nach dem \fIname\fPn durchsucht (siehe \fBhostname\fP(7) für das Dateiformat). Falls der \fIname\fP nicht mit einem Punkt endet, werden die aktuelle Domain und ihre übergeordneten Domains durchsucht. .PP Die Funktion \fBgethostbyaddr\fP() gibt für die angegebene Adresse \fIAdr\fP eine Struktur vom Typ \fIhostent\fP mit der Länge \fILänge\fP und dem Adresstyp \fITyp\fP zurück. Mögliche Adresstypen sind \fBAF_INET\fP und \fBAF_INET6\fP (definiert in \fI\fP). Das Argument \fIAdr\fP ist ein Zeiger auf eine Struktur, die vom Adresstyp abhängt, beispielsweise eine \fIstruct in_addr *\fP (möglicherweise ermittelt durch einen Aufruf von \fBinet_addr\fP(3)) für den Adresstyp \fBAF_INET\fP. .PP Die (veraltete) Funktion \fBherror\fP() gibt die zum aktuellen Wert von \fIh_errno\fP gehörende Fehlermeldung auf \fIstderr\fP aus. .PP Die (veraltete) Funktion \fBhstrerror\fP() ermittelt zu einer Fehlernummer (normalerweise \fIh_errno\fP) die zugehörige Zeichenkette mit der Fehlermeldung. .PP .\" Die durch \fBgethostbyname\fP() und \fBgethostbyaddr\fP() durchgeführten Domain\-Name\-Abfragen verlassen sich auf die konfigurierten Quellen des »Name Service Switch« (\fBnsswitch.conf\fP(5)) oder einen lokalen Name\-Server (\fBnamed\fP(8)). Standardmäßig werden die Quellen des »Name Service Switch« (\fBnsswitch.conf\fP(5)) abgefragt und, falls das fehlschlägt, der lokale Name\-Server (\fBnamed\fP(8)). .SS Geschichtliches Die Datei \fBnsswitch.conf\fP(5) ist die moderne Art, um die Reihenfolge der Rechnerermittlungen zu steuern. .PP In Glibc 2.4 und älter wurde das Schlüsselwort \fIorder\fP verwandt, um die Reihenfolge der Rechnerermittlungen, wie sie in \fI/etc/host.conf\fP (\fBhost.conf\fP(5)) definiert sind, zu steuern. .PP Die Struktur \fIhostent\fP ist in \fI\fP wie folgt definiert: .PP .in +4n .EX 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 */ .EE .in .PP Die Elemente der \fIhostent\fP\-Struktur sind: .TP \fIh_name\fP der offizielle Name des Rechners .TP \fIh_aliases\fP Ein Feld mit den alternativen Namen des Rechners, gefolgt von einem Nullzeiger. .TP \fIh_addrtype\fP der Adresstyp, z.Zt. immer \fBAF_INET\fP oder \fBAF_INET6\fP .TP \fIh_length\fP die Länge der Adresse in Byte .TP \fIh_addr_list\fP ein Feld von Zeigern auf Netzwerkadressen für den Rechner (in der Netzwerk\-Bytereihenfolge), gefolgt von einem Nullzeiger .TP \fIh_addr\fP die erste Adresse in \fIh_addr_list\fP, für Abwärtskompatibilität .SH RÜCKGABEWERT Die Funktionen \fBgethostbyname\fP() und \fBgethostbyaddr\fP() geben eine \fIhostent\fP\-Struktur zurück. Bei einem Fehler wird ein Nullzeiger zurückgegeben. In diesem Fall enthält die Variable \fIh_errno\fP die Fehlernummer. Falls der Zeiger von NULL verschieden ist, kann der Rückgabewert auf statische Daten weisen; siehe die folgenden Anmerkungen. .SH FEHLER Die Variable \fIh_errno\fP kann folgende Werte annehmen: .TP \fBHOST_NOT_FOUND\fP Der angegebene Rechner ist unbekannt. .TP \fBNO_DATA\fP Der angeforderte Name ist gültig aber verfügt über keine IP\-Adresse. Ein anderer Anfragetyp beim Nameserver für diese Domain könnte eine Antwort liefern. Die Konstante \fBNO_ADDRESS\fP ist ein Synonym für \fBNO_DATA\fP. .TP \fBNO_RECOVERY\fP Ein nichtbehebbarer Nameserverfehler ist aufgetreten. .TP \fBTRY_AGAIN\fP Beim maßgebenden Nameserver ist ein vorübergehender Fehler aufgetreten. Versuchen Sie es später noch einmal. .SH DATEIEN .TP \fI/etc/host.conf\fP Konfigurationsdatei des Resolvers (Namensauflöser) .TP \fI/etc/hosts\fP Host\-Datenbankdatei .TP \fI/etc/nsswitch.conf\fP Konfigurationsdatei für »name service switch« .SH ATTRIBUTE Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke. .ad l .nh .TS allbox; lb lb lbx l l l. Schnittstelle Attribut Wert T{ \fBgethostbyname\fP() T} Multithread\-Fähigkeit T{ MT\-Unsafe race:hostbyname env locale T} T{ \fBgethostbyaddr\fP() T} Multithread\-Fähigkeit T{ MT\-Unsafe race:hostbyaddr env locale T} T{ \fBsethostent\fP(), \fBendhostent\fP(), \fBgethostent_r\fP() T} Multithread\-Fähigkeit T{ MT\-Unsafe race:hostent env locale T} T{ \fBherror\fP(), \fBhstrerror\fP() T} Multithread\-Fähigkeit MT\-Safe T{ \fBgethostent\fP() T} Multithread\-Fähigkeit T{ MT\-Unsafe race:hostent race:hostentbuf env locale T} T{ \fBgethostbyname2\fP() T} Multithread\-Fähigkeit T{ MT\-Unsafe race:hostbyname2 env locale T} T{ \fBgethostbyaddr_r\fP(), \fBgethostbyname_r\fP(), \fBgethostbyname2_r\fP() T} Multithread\-Fähigkeit MT\-Safe env locale .TE .hy .ad .sp 1 In der obigen Tabelle bedeutet \fIhostent\fP in \fIrace:hostent\fP, dass, falls eine der Funktionen \fBsethostent\fP(), \fBgethostent\fP(), \fBgethostent_r\fP() oder \fBendhostent\fP() in verschiedenen Threads eines Programms parallel verwandt werden, konkurrierende Zugriffe auf Daten (»data races«) auftreten könnten. .SH STANDARDS POSIX.1\-2001 beschreibt \fBgethostbyname\fP(), \fBgethostbyaddr\fP(), \fBsethostent\fP(), \fBendhostent\fP(), \fBgethostent\fP() und \fIh_errno\fP; \fBgethostbyname\fP(), \fBgethostbyaddr\fP() und \fIh_errno\fP sind in diesem Standard als allmählich außer Dienst stellend gekennzeichnet. POSIX.1\-2008 entfernt die Beschreibungen von \fBgethostbyname\fP(), \fBgethostbyaddr\fP() nd \fIh_errno\fP und empfiehlt stattdessen die Verwendung von \fBgetaddrinfo\fP(3) und \fBgetnameinfo\fP(3). .SH ANMERKUNGEN Die Funktionen \fBgethostbyname\fP() und \fBgethostbyaddr\fP() können Zeiger auf statische Daten zurückgeben, welche bei späteren Aufrufen überschrieben werden könnten. Das Kopieren von \fIstruct hostent\fP ist nicht ausreichend, weil sie Zeiger enthält. Eine tiefe Kopie ist erforderlich. .PP In der ursprünglichen BSD\-Implementierung von \fBgethostbyname\fP() war das Argument \fILänge\fP ein \fIint\fP. Der Standard SUSv2 ist fehlerhaft und weist dem Argument \fILänge\fP von \fBgethostbyaddr\fP() den Typ \fIsize_t\fP zu. (Das ist falsch, weil es \fIint\fP sein muss und das für \fIsize_t\fP nicht der Fall ist. POSIX.1\-2001 macht es zu \fIsocklen_t\fP, was in Ordnung ist.) Siehe auch \fBaccept\fP(2). .PP Der BSD\-Prototyp für \fBgethostbyaddr\fP() verwendet \fIconst char\ *\fP als Datentyp für das erste Argument. .SS "System V/POSIX\-Erweiterung" .\" e.g., Linux, FreeBSD, UnixWare, HP-UX .\" e.g., FreeBSD, AIX POSIX verlangt die Existenz der Funktion \fBgethostent\fP(), die den nächsten Eintrag in der Host\-Datenbank zurückgeben sollte. Bei der Verwendung von DNS/BIND ergibt 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 \fI/etc/hosts\fP. Es kann sein, dass sie nur verfügbar ist, 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 \fBgethostent_r\fP() bereit. .SS GNU\-Erweiterungen Glibc2 enthält auch \fBgethostbyname2\fP(), welche wie \fBgethostbyname\fP() 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. .PP Glibc2 hat auch ablaufinvariante Versionen von \fBgethostent_r\fP(), \fBgethostbyaddr_r\fP(), \fBgethostbyname_r\fP() und \fBgethostbyname2_r\fP(). Der Aufrufende stellte eine \fIhostent\fP\-Struktur \fIret\fP, die bei Erfolg ausgefüllt wird, und einen temporären Arbeitspuffer \fIPuffer\fP der Größe \fIPufflän\fP bereit. Nach dem Aufruf zeigt bei Erfolg \fIergebnis\fP auf das Ergebnis. Im Falle eines Fehlers oder wenn kein Eintrag gefunden wird, ist \fIergebnis\fP 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:Diese Funktionen melden \fBERANGE\fP, falls \fIPuffer\fP zu klein war. In diesem Fall sollte der Aufruf mit einem größeren Puffer wiederholt werden. Die globale Variable \fIh_errno\fP wird nicht verändert, sondern die Adresse einer Variablen zur Speicherung von Fehlernummern wird in \fIh_errnop\fP übergeben. .SH FEHLER .\" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482973 \fBgethostbyname\fP() erkennt in IPv4\-Adresszeichenketten in Punktnotation keine Bestandteile in hexadezimaler Notation. .SH "SIEHE AUCH" .\" .BR getipnodebyaddr (3), .\" .BR getipnodebyname (3), \fBgetaddrinfo\fP(3), \fBgetnameinfo\fP(3), \fBinet\fP(3), \fBinet_ntop\fP(3), \fBinet_pton\fP(3), \fBresolver\fP(3), \fBhosts\fP(5), \fBnsswitch.conf\fP(5), \fBhostname\fP(7), \fBnamed\fP(8) .\" .BR resolv+ (8) .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer und Helge Kreutzmann erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die .MT debian-l10n-german@lists.debian.org Mailingliste der Übersetzer .ME .