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

Antwort per Email an