inet(3N) inet(3N)
NAME
inet: inetaddr, inetnetwork, inetmakeaddr, inetlnaof, inetnetof,
inetntoa - Internet-Adreßmanipulation
SYNTAX
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
unsigned long inetaddr(const char *cp);
int inetnetwork(const char *cp);
struct inaddr inetmakeaddr(int net, int lna);
inetlnaof(struct inaddr in);
inetnetof(struct inaddr in);
char *inetntoa(struct inaddr in);
BESCHREIBUNG
Die Routinen inetaddr() und inetnetwork() interpretieren Zeichenket-
ten, die IP-Nummern in der Punkt-Schreibweise (Internet-Standard) dar-
stellen. Zurückgeliefert werden Zahlen, die für den Gebrauch als
Internet-Adressen und als Internet-Netzwerknummern geeignet sind.
Die Routine inetmakeaddr() erwartet eine Netzwerknummer und eine
Rechnernummer und erzeugt daraus eine Internet-Adresse.
Die Routinen inetnetof() und inetlnaof() zerlegen Internet-Rechner-
adressen und liefern die Netzwerknummer und die Rechnernummer zurück.
Die Routine inetntoa() liefert einen Zeiger auf eine Zeichenkette in
der Notation "d.d.d.d" (siehe unten) zurück.
Alle Internet-Adressen werden in Netzwerkreihenfolge zurückgeliefert
(Bytes geordnet von links nach rechts). Alle Netzwerknummern und
lokale Adressen werden als Ganzzahlwerte (Integer) zurückgeliefert.
INTERNET-ADRESSEN
Spezifizierte Werte, die in der Punkt-Schreibweise dargestellt sind,
nehmen eins der folgenden Formate an:
a.b.c.d
a.b.c
a.b
a
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
inet(3N) inet(3N)
Wenn vier Teile angegeben werden, wird jeder Teil als Datenbyte inter-
pretiert, und von links nach rechts an die vier Bytes einer Internet-
Adresse zugewiesen.
Wenn drei Teile angegeben werden, wird der letzte Teil als 16-Bit-Wert
interpretiert und in den zwei am weitesten rechts liegenden Bytes der
Netzwerkadresse abgelegt. Dies macht das dreiteilige Adreßformat
leicht anwendbar auf die Spezifikation von Netzwerkadressen der Klasse
B, wie z. B. "128.net.host".
Wenn eine zweiteilige Adresse angegeben wird, wird der letzte Teil als
24-Bit-Wert interpretiert und in den drei am weitesten rechts stehen-
den Bytes der Netzwerkadresse abgelegt. Dies macht das zweiteilige
Adreßformat leicht anwendbar auf die Spezifikation von Netzwerkadres-
sen der Klasse A, wie z. B. "net.host".
Wenn nur ein Teil angegeben wird, wird der Wert direkt in der Netz-
werkadresse abgespeichert, ohne Neuanordnung der Bytes.
Alle Nummern, die als Teil in einer Punkt-Schreibweise angegeben sind,
können dezimal, oktal oder hexadezimal sein, jeweils spezifiziert
durch die in der Sprache C verwendete Kennzeichnung. Das heißt, ein
führendes "0x" oder "0X" kennzeichnet einen hexadezimalen Wert. Eine
führende "0" ohne folgendes "x" oder "X" hat einen oktalen Wert. Bei
keiner Angabe wird eine Dezimalzahl angenommen.
DIAGNOSE
Bei nicht korrekten Anfragen wird von inetaddr() und inetnetwork()
eine -1 zurückgegeben.
HINWEISE
Das Problem der Host-Bytereihenfolge gegenüber der Netzwerk-Byte-
reihenfolge ist sehr verwirrend. Daher ist ein einfacher Weg nötig,
Netzwerkadressen der Klasse C in einer Art und Weise zu spezifizieren,
die dem von Klasse B und Klasse A ähnlich ist.
Der Rückgabewert von inetntoa() zeigt auf statische Information, wel-
che bei jedem Aufruf überschrieben wird.
SIEHE AUCH
gethostent(3N), getnetent(3N), hosts(4), networks(4).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98