Hauptindex | Abschnitt 3 | English | 日本語 | Optionen |
#include <netdb.h> extern int h_errno;struct hostent *gethostbyname(const char *name);
struct hostent *gethostbyaddr(const char *addr, int len, int type);
void sethostent(int stayopen);
void endhostent(void);
void herror(const char *s);
Die gethostbyaddr()-Funktion liefert für die angegebene Adresse addr mit der Länge len vom Adresstyp type eine Struktur vom Typ hostent zurück. Der z.Zt. einzig gültige Adresstyp ist AF_INET.
Die sethostent()-Funktion legt fest, falls stayopen wahr (1) ist, daß eine bestehende TCP-Verbindung für Nameserveranfragen genutzt werden soll und daß die Verbindung für die nachfolgenden Anfragen offen bleiben soll. Ansonsten werden für Nameserveranfragen UDP-Datagramme benutzt.
Die endhostent()-Funktion beendet die Benutzung einer TCP-Verbindung für Namerserveranfragen.
Die herror()-Funktion gibt die zum aktuellen Wert von h_errno gehörende Fehlermeldung auf stderr aus.
Die Funktionen gethostbyname() und gethostbyaddr() benutzen für ihre Anfragen den Nameserver named(8) [Englisch], die 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 Siehe dazu auch resolv+(8) Das Standardverhalten ist zuerst den Nameserver zu befragen und danach die Datei /etc/hosts zu durchsuchen.
Die hostent-Struktur ist in <netdb.h> folgendermassen definiert:
struct hostent { char *h_name;/* Offizieller Name des Rechners */ char **h_aliases;/* Aliasliste */ int h_addrtype;/* Host Address Typ */ int h_length;/* Adresslänge */ char **h_addr_list;/* Adressliste */ } #define h_addr h_addr_list[0]/* für Abwärtskompatibilität */
Die Felder der hostent-Struktur sind:
h_name | Der Offizielle Name des Rechners. |
h_aliases | |
Ein Null-terminiertes Array mit den alternativen Namen des Rechner. | |
h_addrtype | |
Adresstyp, z.Zt. immer AF_INET. | |
h_length | |
Die Länge der Adresse in Bytes. | |
h_addr_list | |
Ein Null-terminiertes Array von Netzwerkadressen des Rechners in der Netzwerk-Byte-Reihenfolge (network byte order). | |
h_addr | Die erste Adresse in h_addr_list für Abwärtskompatibilität. |
HOST_NOT_FOUND | |
Der angegebene Rechner ist unbekannt. | |
NO_ADDRESS | |
Der angegebene Name ist gültig, aber es existiert dazu keine IP-Adresse. | |
NO_RECOVERY | |
Ein nichtbehebbarer Nameserverfehler ist aufgetreten. | |
TRY_AGAIN | |
Beim zuständigen Nameserver ist ein vorübergehender Fehler aufgetreten. Versuchen Sie es später nochmals. | |
/etc/host.conf | |
Konfigurationsdatei des Namenauflösers (resolver). | |
/etc/hosts | |
Rechnerdatenbankdatei | |
April 19, 1993 | GETHOSTBYNAME (3) | BSD |
Hauptindex | Abschnitt 3 | English | 日本語 | Optionen |
Bitte richten Sie Ihre Kommentare zu diesem Handbuch Seite Service, Ben Bullock. Privacy policy.
“ | Never write it in C if you can do it in `awk'; Never do it in `awk' if `sed' can handle it; Never use `sed' when `tr' can do the job; Never invoke `tr' when `cat' is sufficient; Avoid using `cat' whenever possible. |
” |
— Taylor's Laws of Programming |