linux-l: OT: Merkwuerdige Adresse
Jens Dreger
jens.dreger at physik.fu-berlin.de
Di Feb 22 12:09:33 CET 2000
On Tue, Feb 22, 2000 at 11:07:01AM +0100, Robert C. Helling wrote:
> On Tue, 22 Feb 2000, Robert Sander wrote:
>
> > Hallo!
> >
> > Ich moechte jetzt Keinen belaestigen, loescht also die Nachricht vor dem
> > Lesen, wenn sie Euch nicht gefaellt. ;-)
> >
> > Ich habe eben Spam bekommen mit dieser komischen Adresse als Referenz und
> > dachte mir, die wollen nur ueber den unsubscribe-Mechanismus Adressen sammeln,
> > die Webadresse kann ja gar nicht gehen. Tut sie aber, weil 3521840083
> > irgendwie im DNS steht:
> >
> > gurubert at beteigeuze[gurubert]$ host -a 3521840083
> > Name: 211-209.235.3.interliant.com
> > Address: 209.235.3.211
> >
> > Wie kann das denn gehen? Ich kenne DNS ein wenig, das halte ich aber
> > eigentlich nicht fuer moeglich.
>
> Eine weiter guieltige Form ausser der mit den Punkten, ist sie als eine
> long Zahl im 256-System aufzufassen. In hex:
>
> 3521840083 = 0x D1.EB.03.D3
>
> und dann
>
> 0xD1 = 209
> 0xEB = 235
> 0x3 = 3
> 0xD3 = 211
>
> Robert
>
Hi Robert !
Du hast Deine Antwort zwei Minuten, bevor ich Die _Frage_ erhielt,
abgeschickt. Leider kam sie trotzdem erst an, als ich auch
schon eine Antwort geschrieben hatte. Jaja, ich weiss, das geht
technisch nicht anders. ;-)
Anyway, da sich jetzt wahrscheinlich der eine oder andere fragt, wie
die Nummer zu seinem Rechner ist, versuche ich gleich mal eine "wie
rechne ich das am elegantesten in Perl aus"-Diskussion anzuzetteln.
Ich biete:
perl -le 'map {$s=$s*256+$_;} split(/\./,"209.235.3.211"); print $s;'
oder
perl -le 'print unpack("L",pack("C4", split(/\./,"160.45.33.93")));'
Sieht beides nicht sehr elegant aus. Jemand einen besseren Vorschlag ?
Gruss,
Jens.
PS: achja, fuer's shell-skript-archiv biete ich an:
--------8<------------------
#!/bin/sh
# usage: ip2long <ip-number>
SUM=0
for I in `echo $1 | sed -e 's/\./ /g'`; do
SUM="($SUM*256+$I)"
done
echo $SUM | bc
-----------------------8<-----------
direkt ausrechnen in der Shell geht irgendwie wegen signed int nicht.
Mehr Informationen über die Mailingliste linux-l