Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ gethostent(3N) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

named(1M)

resolver(3N)

hosts(4)

netconfig(4)

in(5)

gethostent(3N)                                               gethostent(3N)

NAME
     gethostent, gethostbyaddr, gethostbyname, sethostent, endhostent -
     Hostnamen ermitteln

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

     struct hostent *gethostent(void);

     struct hostent *gethostbyaddr(const char *addr, int len, int type);

     struct hostent *gethostbyname(const char *name);

     void sethostent(int stayopen);

     void endhostent(void);

BESCHREIBUNG
     gethostbyaddr() und gethostbyname() geben jeweils einen Zeiger auf ein
     Objekt mit der Struktur hostent zurück, das einen Internet-Host
     beschreibt, auf den über seinen Namen bzw. seine Adresse verwiesen
     wird. Abhängig von den in /etc/netconfig aufgelisteten dynamischen
     Bibliotheken enthält diese Struktur entweder Informationen, die von
     einem DNS-Nameserver (DNS - Domain Name System), von named(1M)
     (resolv.so) oder von Feldern aus einer Zeile in /etc/hosts (tcpip.so)
     stammen. Wird der Rechner mit einer Bibliothek nicht gefunden, wird
     die nächste Bibliothek verwendet.

     gethostent() gibt die Informationen aus /etc/hosts aus.

     gethostbyaddr() verwendet als Argument addr einen Zeiger auf die
     Adresse im binären Format mit der Länge len (und keine Zeichenkette)
     (siehe unten).

     Anwendungen sollten mit der Option -lsocket gebunden werden.

     struct      hostent {
          char    *hname;        /* offizieller Name des Rechners */
          char    **haliases;    /* Aliasliste */
          int     haddrtype;     /* Adreßtyp */
          int     hlength;       /* Länge der Adresse */
          char    **haddrlist;  /* Adreßliste */
     };
     #define haddr haddrlist[0]  /* Adresse, für Rückwärtskompatibilität */

     Die Elemente dieser Struktur sind:

     hname         Offizieller Name des Rechners

     haliases      Array mit Aliasnamen für den Rechner; endet mit Null.



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

gethostent(3N)                                               gethostent(3N)

     haddrtype     Typ der Adresse, die zurückgeliefert wird; im Augen-
                    blick nur AFINET.

     hlength       Länge der Adresse in Bytes

     haddrlist    Zeiger auf eine Liste von Netzadressen für den angege-
                    benen Rechner; Rechneradressen werden in der Netz-
                    Byte-Anordnung zurückgeliefert.

     Bei Verwendung des Nameservers sucht gethostbyname() in der aktuellen
     Domäne und in den übergeordneten Domänen nach dem genannten Host,
     sofern der Name nicht mit einem Punkt endet. Wenn der Name keine
     Punkte enthält und die Umgebungsvariable HOSTALAIASES den Namen einer
     Aliasdatei enthält, wird zuerst die Aliasdatei nach einem Aliasnamen
     durchsucht, der dem Eingabenamen entspricht.

     gethostent() liest einen Eintrag der Datei /etc/hosts und öffnet gege-
     benenfalls vorher die Datei. Wurde die Datei bereits bei einer voran-
     gegangen Lese-Operation geöffnet, liefert die Funktion den nächsten
     Eintrag.

     sethostent() öffnet die Datei und positioniert auf den Anfang. Falls
     das Flag stayopen ungleich Null ist, wird die Datei /etc/hosts nicht
     nach jedem Aufruf von gethostent() geschlossen. Dies erfolgt entweder
     direkt oder durch einen der anderen "gethost"-Aufrufe.

     endhostent() schließt die Datei.

     Bei Verwendung von tcpip.so durchsuchen gethostbyname() und
     gethostbyaddr() die Datei /etc/hosts sequentiell (am Anfang der Datei
     beginnend), bis ein passender Rechnername oder eine passende Rechner-
     adresse gefunden wurde, oder bis EOF erreicht wurde. Rechneradressen
     werden in Netz-Byte-Anordnung geliefert.

     gethostbyaddr() erwartet einen Zeiger auf eine Adreßstruktur. Diese
     Struktur ist für jeden Adreßtyp type eindeutig. Für eine Adresse vom
     Typ AFINET ist dies die Struktur inaddr (siehe auch <netinet/in.h>).

DIAGNOSE
     Bei Auftreten eines Fehlers oder bei EOF wird ein NULL-Zeiger zurück-
     geliefert.

HINWEISE
     Jede Information wird in statischen Bereichen gehalten, so daß sie
     kopiert werden muß, wenn sie gesichert werden soll. Im Augenblick wird
     nur das Internet-Adreßformat als gültig erkannt.

DATEIEN
     /etc/hosts (/etc/inet/hosts)

     /etc/netconfig



Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

gethostent(3N)                                               gethostent(3N)

     /usr/lib/libsocket.so

     /usr/lib/resolv.so

     /usr/lib/tcpip.so

SIEHE AUCH
     named(1M), resolver(3N), hosts(4), netconfig(4), in(5).














































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026