Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Rechnernamen in Netzadressen umwandeln und umgekehrt

&pagelevel(3)&pagelevel

Für die Umwandlung von Rechnernamen in Netzadressen und umgekehrt gibt es in den Adressfamilien AF_INET und AF_INET6 spezielle Socket-Funktionen.

Socket-Funktionen zur Adressumwandlung in den Adressfamilien AF_INET und AF_INET6

Die Funktion getaddrinfo() liefert Adress- und Portinformationen zum Rechnernamen und zum Service-Namen, welche beim Aufruf angegeben wurden.

Die Funktion getnameinfo() liefert Rechnernamen und Service-Namen zur IP-Adresse und zur Portnummer, welche beim Aufruf angegeben wurden.

Die Funktion getipnodebyname() wandelt einen Rechnernamen in eine IPv4-Adresse oder in eine IPv6-Adresse um.

Die Funktion getipnodebyaddr() wandelt eine IPv4- oder IPv6-Adresse in einen Rechnernamen um.

Die Funktion inet_ntop() konvertiert eine Internet-Rechneradresse in eine Zeichenkette. Diese Zeichenkette wird wie folgt zurückgeliefert:

  • bei AF_INET6 in der sedezimalen Doppelpunkt-Notation

  • bei AF_INET in der dezimalen Punkt-Notation

Die Funktion inet_pton() konvertiert eine abdruckbar dargestellte Internet-Rechneradresse

  • von einer Zeichenkette in der dezimalen Punkt-Notation in eine binäre IPv4-Adresse (AF_INET).

  • von einer Zeichenkette in der sedezimalen Doppelpunkt-Notation in eine binäre IPv6-Adresse (AF_INET6).

Socket-Funktionen zur Adressumwandlung, die nur in AF_INET unterstützt werden

Die Funktion gethostbyname() wandelt einen Rechnernamen in eine IPv4-Adresse um.

Die Funktion gethostbyaddr() wandelt eine IPv4-Adresse in einen Rechnernamen um.

Die Funktionen gethostbyname() und gethostbyaddr() liefern als Ergebnis einen Zeiger auf ein Objekt vom Datentyp struct hostent.

Die Struktur hostent ist in <netdb.h> 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 */
};
#define h_addr h_addr_list[0]  /* erste Adresse, Netz-Byte-Reihenfolge */

Das von gethostbyname() und gethostbyaddr() zurückgelieferte hostent-Objekt enthält immer folgende Informationen:

  • Name des Rechners

  • Liste der alternativen Namen (Aliases) des Rechners

  • Adresstyp (Domäne)

  • mit dem Null-Zeiger abgeschlossene Liste von IPv4-Adressen

Die Adressliste wird benötigt, weil ein Rechner möglicherweise mehrere Adressen hat, die alle demselben Rechnernamen zugeordnet sind.

Die Funktion inet_ntoa() konvertiert eine IPv4-Rechneradresse in eine Zeichenkette gemäß der üblichen Internet-Punktschreibweise.