At 12:43 21.09.2002 +0200, you wrote:
>Hi!
>
>Ich suche nach einer M�glichkeit, mittels Perl die folgende Konvertierung
>vorzunehmen:
>
>192.168.1.1 -> 0C.A8.01.01 -> 0CA80101 -> 212336897 (und wieder zur�ck)
Hast Du hier nicht einen kleinen Fehler?
192.168.001.001 -> c0.a8.01.01 -> c0a80101 -> 3232235777
Ich hab mal das Programm von Soeren M Soerries angesehen und ein wenig
drin rumgepfuscht.
Ich muss sagen, dass ich kein Perl kann, dass ist mein erstes mal,
aber es tut dann doch was es soll:
use strict; # amen.
my $ip = q/192.168.001.001/; # Ausgangspunkt IP-Adresse
my @array = split /\./, $ip; # in 4 Array-Slots
my @hex_array = map { sprintf("%1x", $_) } @array;
# Hier werden den hex-Werten die fehlenden
# anfuehrenden Nullstellen vorangestellt
my $i=0;
while ($i++ < 3) {
if (length($hex_array[$i]) < 2) {
$hex_array[$i] = "0$hex_array[$i]";
}
}
my $hexpression=join("", @hex_array);
print "1. $ip", # wie gehabt
"\n2. ", join(".", @hex_array), # Hex mit Punkten
"\n3. ", $hexpression, # Hex ohne Punkte
"\n4. ", hex $hexpression,"\n"; # Intergerzahl
Vielleicht hilft es.
Gr�sse
Tobi
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org