Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

gethostbyaddr(), gethostbyname() - Informationen über Rechnernamen und -adressen abfragen

&pagelevel(4)&pagelevel

#include <sys.socket.h>
#include <netdb.h>
 
Kernighan-Ritchie-C:
struct hostent *gethostbyaddr(addr, len, type);

char *addr;
int len;
int type;
 
struct hostent *gethostbyname(name);
char *name;

ANSI-C:
struct hostent* gethostbyaddr(char* addr, int len, int type);
struct hostent* gethostbyname(char* name);


Beschreibung

Die Verwendung der Funktionen gethostbyaddr() und gethostbyname() ist nur in der Adressfamilie AF_INET sinnvoll.

gethostbyaddr() und gethostbyname() liefern aktuelle Informationen über die im Netz bekannten Rechner. Dabei beschaffen sich gethostbyaddr() und gethostbyname() die benötigten Informationen (Rechnername bzw. Rechneradresse) von einem DNS-Server. Nur falls dies nicht erfolgreich ist, wird die Information aus den BCAM-Tabellen und -Strukturen ermittelt (siehe Handbuch „BCAM Band 1/2“).

Bei gethostbyaddr() ist addr ein Zeiger auf die Rechneradresse. Die Rechneradresse muss in binärem Format mit der Länge len vorliegen. Als Angabe für type ist nur AF_INET zulässig.

Bei gethostbyname() muss für name der Rechnername angegeben werden.

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

Die Struktur hostent ist wie folgt deklariert:

struct hostent {
   char *h_name;              /* Socket-Hostname */
   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 */ 
};
#define h_addr h_addr_list[0]; /* erste Adresse, Netz-Byte-Reihenfolge */

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)

h_length

Länge der Adresse (in Bytes)

**h_addr_list

Ein Zeiger auf eine durch Null abgeschlossene Liste von Netzadressen für den Rechner. Diese Adressen der Länge h_length werden in Netz-Byte-Reihenfolge geliefert.

Returnwert

Zeiger auf ein Objekt vom Typ struct hostent. Im Fehlerfall wird der Null-Zeiger zurückgeliefert.

Hinweis

Die Informationen des zurückgelieferten hostent-Objekts befinden sich in einem statischen Bereich, der bei jedem neuen gethostby...()-Aufruf überschrieben wird. Die Informationen müssen somit kopiert werden, wenn sie gesichert werden sollen.

Ab der Version V2.2 wird mit gethostbyname() und gethostbyaddr() für den Zugang zum DNS der für SOCKETS(BS2000), BCAM und POSIX-Sockets gemeinsame Resolver LWRESD genutzt. Näheres siehe Handbuch „BCAM Band 1/2“.
Die Nutzung des POSIX-Resolver-Dämons dnsd entfällt.