Karstens Blog

IP-Adressen in Zahlen umrechnen

Author: Karsten | September 07, 2012 | 1 Minute Read

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 *)