IP-Adressen in Zahlen umrechnen
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.[]{#more}[]{#more-845}
Definition Sei ip eine IP-Adresse. Dann ist I~tup~ Tupeldarstellung der Form
{.tex}
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 *)