[mathjax]
IP-Adressen kennt man meistens in der Form 217.193.124.173. Selbst erfahrene Computerbenutzer sind irritiert, wenn eine IP-Adresse in der Form 3653336237 angegeben ist. Doch natürlich ist die Adresse lediglich eine normale Zahl, auch wenn die Tupeldarstellung für uns übersichtlicher ist.
Definition Sei ip eine IP-Adresse. Dann ist Itup Tupeldarstellung der Form
Dann lautet die Zahlenschreibweise:
$$ip = 256^3 a + 256^2 b + 256 c + d$$
Offenbar kann man die Tupeldarstellung als vierstellige Zahl in einem Zahlensystem zur Basis 256 auffassen. Das macht es uns einfach, die einzelnen «Ziffern» der IP-Adresse auszurechnen:
$$a = \frac{ip}{256^3} \mathrm{mod} 256$$
$$ b = \frac{ip}{256^2} \mathrm{mod} 256$$
$$ c = \frac{ip}{256} \mathrm{mod} 256$$
$$d = ip \mathrm{mod} 256$$
Gießen wir diesen Algorithmus in Programmcode und erhalten so ein kleines Werkzeug, dass uns die Rechnung abnimmt:
Program IPAdress(input, output);
Uses Sysutils;
Var
numIp : Int64;
a,b,c,d : Integer;
Begin (* Main *)
If ParamStr(1) = '' Then
Begin
Writeln('Usage: ip ');
Halt;
End;
numIp := StrToInt64(ParamStr(1));
a := (numIp DIV (256*256*256)) MOD 256;
b := (numIp DIV (256*256)) MOD 256;
c := (numIp DIV (256)) MOD 256;
d := numIp MOD 256;
Writeln(a, '.', b, '.', c, '.', d);
End. (* Main *)
Comments are disabled for this post