ForumKonvertieren von HEX zum ASCII / Character
Karsten Tröß – Dienstag, 28. November 2006 13:25 Uhr

Hallo Zusammen,

wie kann ich am einfachsten (bash+tools ohne!! Scriptsprache, ich kann nicht programmieren, wenn ich natürlich eine funktionierende Aussage bekomme ist es auch O.K.) Daten von HEX nach ASCII (oder wie heisst das richtig wenn ich z.B. Buchstaben haben will) umwandeln?
Beispiel: ich habe von STDIN folgenden String:
3139322E3136382E3235332E3130
dieser String beinhaltet eine (hex-codierte) IP-Adresse. Wie kann ich diese, z.B. durch ein Script, in eine “Lesbare” form umwandeln?

Danke.

Karsten

1 Antwort
Klaus Weisbrich – Dienstag, 28. November 2006 22:15 Uhr

Hallo, Karsten,
wenn es sich nur darum handelt, IP-Adressen umzuwandeln, kann folgendes helfen:

#!/bin/bash
read ZKette
echo $ZKette
for i in `seq 0 2 ${#ZKette}`
do
KODE=${ZKette:$i:2}
if [ “$KODE” != “2E” ]
then
echo -n ” “${KODE:1:1}
else
echo -n ” .”
fi
done
echo
exit

Die obigen Zeilen in eine leere Textdatei kopieren, die Datei unter einem Namen speichern (z. B. convert), die Datei ausführbar machen und in die Ausgabepipe einhängen. Alles verstanden? Ansonsten noch ‘mal fragen.
Kommt die obige Zeichenkette aus einem Programm??
Die Umwandlung geht auch im Kopf: Die Zeichenkette aufteilen in Gruppen mit jeweils zwei Zeichen:
31 39 32 2E 31 36 38 2E 32 35 33 2E 31 30
Ziffern sind im ASCII-Code leicht zu erkennen: sie liegen in der 30-er Gruppe. 31 steht für 1, 32 für 2, …
2E ist der Punkt, so dass eigentlich, wenn Du die erste 3 aus den Ziffernfolgen ausblendest, sofort die IP-Adresse erkennen kannst.

Gruß
Klaus

Karsten Tröß – Mittwoch, 29. November 2006 12:14 Uhr

Hallo Klaus,

Du hast natürlich recht dass das umrechnen im Kopf einfach ist, aber ich habe mehr als nur eine Zahl.

Desweiteren werde ich dein Script testen und weiter ausbauen.

Vorab mal danke.

Karsten