#include <sys.socket.h>
#include <netinet.in.h>
#include <arpa.inet.h>
Kernighan-Ritchie-C:
char *inet_ntop(af, addr, dst, size);
int af;
char *addr;
char *dst;
int size;
int inet_pton(af, addr, dst);
int af;
char *addr;
char *dst;
ANSI-C:
char* inet_ntop(int af, char* addr, char* dst, int size);
int inet_pton(int af, char* addr, char* dst);
Beschreibung
Die Verwendung der Funktionen inet_ntop() und inet_pton() ist nur in den Adressfamilien AF_INET und AF_INET6 sinnvoll.
Die Funktion inet_ntop() konvertiert die binäre IP-Adresse, auf die der Parameter addr verweist, in eine abdruckbare Notation. Dabei spezifiziert der im Parameter af übergebene Wert, ob es sich um eine IPv4-Adresse oder um eine IPv6-Adresse handelt:
Falls in af der Wert AF_INET übergeben wird, wird eine binäre IPv4-Adresse in eine abdruckbare dezimale Punkt-Notation konvertiert.
Falls in af der Wert AF_INET6 übergeben wird, wird eine binäre IPv6-Adresse eine abdruckbare sedezimale Doppelpunkt-Notation konvertiert.
inet_ntop() liefert die abdruckbare Adresse in dem Puffer der Länge size zurück, auf den der Zeiger dst verweist. Eine ausreichende Dimensionierung des Puffers ist gewährleistet, wenn Sie beim Aufruf von inet_ntop() die Integer-Konstanten INET_ADDRSTRLEN (für IPv4-Adressen) bzw. INET6_ADDRSTRLEN (für IPv6-Adressen) als aktuelle Werte für size verwenden. Beide Konstanten sind in <netinet.in.h> definiert.
Die Funktion inet_pton() konvertiert eine IPv4-Adresse in dezimaler Punkt-Notation oder eine IPv6-Adresse in sedezimaler Doppelpunkt-Notation in eine binäre Adresse. Dabei spezifiziert der im Parameter af übergebene Wert, ob es sich um eine IPv4-Adresse oder um eine IPv6-Adresse handelt:
Falls in af der Wert AF_INET übergeben wird, wird eine IPv4-Adresse konvertiert.
Falls in af der Wert AF_INET6 übergeben wird, wird eine IPv6-Adresse konvertiert.
inet_pton() liefert die binäre Adresse in dem Puffer zurück, auf den der Zeiger dst verweist. Der Puffer muss ausreichend dimensioniert sein: 4 byte bei AF_INET und 16 byte bei AF_INET6.
Hinweis
Wenn der Output von inet_pton() als Input für eine neue Funktion dient, achten Sie darauf, dass die Anfangsadresse des Zielbereichs dst eine Doppelwort-Ausrichtung hat.
Returnwert
inet_ntop() liefert bei erfolgreicher Ausführung einen Zeiger auf den Puffer zurück, in dem der Textstring abgelegt ist. Im Fehlerfall wird ein Null-Zeiger zurückgeliefert.
inet_pton() liefert folgende Werte zurück:
1:
bei erfolgreicher Konvertierung.
0:
wenn der Input kein gültiger Adress-String ist.
-1:
wenn ein Parameter ungültig ist.
Fehleranzeige durch errno
EAFNOSUPPORT
ungültiger Operand
ENOSPC
Ergebnispuffer zu klein