Seite 1 von 1

HEX in Liste mit Strings.

Verfasst: Mittwoch 6. September 2006, 10:51
von 2bock
Hallo zusammen. habe ein großes Problem.

Ich habe eine Methode in C , die Strings in Hex ausgibt. Ich möchte jetzt in Python diesen Hex- String wieder in in eine Liste mit Strings umkonvertieren. Wie mache ich dass mit struct?

Code: Alles auswählen

struct.unpack('s',val.pPythonHexDataString)
Danke schon mal für Eure Hilfe im Vorraus.

Greetz from 2bock ;-)


Nachtrag:

Ich bekomme von C eine Variable in der als char 'DA' steht. ich möchte diesen Hexstring in Ascii umwandeln. Wie mache ich das?

Verfasst: Mittwoch 6. September 2006, 12:03
von BlackJack
Das machst Du am besten gar nicht mit `struct`. Bevor ich jetzt Anfange zu raten: Kannst Du mal ein Beispiel zeigen? Also wie sieht so eine Hexzeichenkette aus und wie soll das gewünschte Ergebnis aussehen.

Verfasst: Mittwoch 6. September 2006, 12:28
von 2bock
Hi Black Jack,

in Klartext heisst der Satz/Wort "Hallo". Der soll dann in Hex konvertiert werden und wieder zurück. Ich habe gerade ein Problem mit der C-Methode. Wird gerade überarbeitet.

Verfasst: Mittwoch 6. September 2006, 14:03
von BlackJack
Suchst Du das hier?

Code: Alles auswählen

In [32]: binascii.hexlify('Hallo')
Out[32]: '48616c6c6f'

In [33]: binascii.unhexlify('48616c6c6f')
Out[33]: 'Hallo'

Verfasst: Donnerstag 7. September 2006, 07:02
von 2bock
Ja danke das ist die lösung. binascii kannte ich noch gar nicht.
Danke Black Jack

Greetz from 2bock ;-)

Verfasst: Freitag 8. September 2006, 10:46
von 2bock
So und jetzt noch ein BProblem. Da kannst Du mir bestimmt helfen.

Ich habe z:B. folgende IP Adresse. 10.250.10.167
Ich möchte folgenden HExstring haben: 0AFA0AF5BAC0

Kannst Du mir nur nen Tip geben in welche Richtung ich suchen muss um die Lösung zu finden. Ich würde gerne selber die lösung finden, brauche aber einen Tipp dort hin.

Herzlichen Danke ;-)

Verfasst: Freitag 8. September 2006, 11:43
von BlackJack
Äh, das ist ja ein nettes Ratespielchen. Die ersten 3 Bytes, also die ersten 6 Zeichen sind einfach, aber warum die vierte Zahl aus der IP-Adresse dann den Rest ergeben soll, weiss ich nicht.

Ich hätte eher folgendes erwartet:

Code: Alles auswählen

In [17]: ip = '10.250.10.167'

In [18]: ''.join(['%02X' % int(x) for x in ip.split('.')])
Out[18]: '0AFA0AA7'

Verfasst: Freitag 8. September 2006, 11:48
von 2bock
Danke BlackJack,
OK. ich werde mir das mal genauer anschauen.

Danke Nochmal.

Verfasst: Freitag 8. September 2006, 12:43
von Joghurt
Übrigens ist die Dotnotation nur eine andere Darstellung der IP-Adresse.
Man kann (außer vielleicht bei MS-Produkten) auch die IP-Adresse direkt angeben.

Z.B. Ein google.de-Server hat 66.102.9.104.
Also führt http://0x42660968 und http://1113983336 da auch hin.