Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

gethostent(), gethostbyname(), gethostbyaddr(), sethostent(), endhostent() - Informationen über Rechnernamen und -adressen

&pagelevel(4)&pagelevel

#include <sys/socket.h>
#include <netdb.h>

struct hostent *gethostent(void);
struct hostent *gethostbyname(const char *name);
struct hostent *gethostbyaddr(const void *addr, size_t len, int type);
void sethostent(int stayopen);
void endhostent(void);

Beschreibung

Die Funktionen gethostbyname() und gethostbyaddr() liefern aktuelle Informationen über die im Netz erreichbaren Rechner durch Aufruf einer BCAM-Informationsschnittstelle. Dabei wird das DNS-Konzept unterstützt, wenn der DNS-Resolver aus dem Produkt interNet Services (früher TCP-IP-SV) in POSIX installiert ist oder das Subsystem SOCKETS (BS2000) gestartet ist.

Dagegen greift die Funktion gethostent() auf die Datei /etc/inet/hosts zu, die im Standardfall nur einen Eintrag für den lokalen Rechner enthält.

Die Funktionen gethostbyname(), gethostbyaddr() und gethostent() liefern einen Zeiger auf ein Objekt der nachfolgend beschriebenen Struktur hostent.

Die Struktur hostent entspricht den Feldern einer Zeile der Rechner-Datenbasis und ist wie folgt deklariert:

struct hostent {
   char *h_name;           /* offizieller Rechnername */
   char **h_aliases;       /* Alias-Liste */
   int h_addrtype;         /* Adresstyp */
   int h_length;           /* Länge der Adresse (in Bytes) */
   char **h_addr_list;     /* Liste von Adressen für den Rechner, */
                           /* terminiert durch den Null-Zeiger */ 
};

Beschreibung der hostent-Komponenten:

h_name

Name des Rechners.

h_aliases

Eine durch null abgeschlossene Liste mit alternativen Namen für den Rechner. Alias-Namen werden derzeit nicht unterstützt.

h_addrtype

Typ der Adresse, die geliefert wird (immer AF_INET).

length

Länge der Adresse (in Bytes).

**h_addr_list

Ein Zeiger auf eine Liste von Netzadressen für den Rechner. Diese Adressen werden in Netz-Byte-Reihenfolge geliefert.

Im Falle von gethostbyaddr() ist addr ein Zeiger auf die Adresse in binärem Format mit der Länge len (kein Character-String).

gethostent() liest die nächste Zeile der Datei. Wenn nötig, öffnet gethostent() vorher die Datei.

sethostent() öffnet die Datei und setzt sie auf den Anfang zurück. Wenn das Flag stayopen ungleich null ist, wird die Datenbasis nach keinem Aufruf von gethostent() geschlossen (weder direkt noch indirekt durch einen der anderen gethost...()-Aufrufe).

Returnwert

Bei Fehler oder Dateiende wird der Null-Zeiger zurückgeliefert.

Hinweis

Alle Informationen befinden sich in einem statischen Bereich. Die Informationen müssen somit kopiert werden, wenn sie gesichert werden sollen.
Es wird nur das IPv4-Adressformat unterstützt.