HEX in Liste mit Strings.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
2bock
User
Beiträge: 94
Registriert: Freitag 12. September 2003, 07:58
Wohnort: 50.9333300 / 6.3666700

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?
Zuletzt geändert von 2bock am Mittwoch 6. September 2006, 12:08, insgesamt 1-mal geändert.
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.
2bock
User
Beiträge: 94
Registriert: Freitag 12. September 2003, 07:58
Wohnort: 50.9333300 / 6.3666700

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.
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'
2bock
User
Beiträge: 94
Registriert: Freitag 12. September 2003, 07:58
Wohnort: 50.9333300 / 6.3666700

Ja danke das ist die lösung. binascii kannte ich noch gar nicht.
Danke Black Jack

Greetz from 2bock ;-)
2bock
User
Beiträge: 94
Registriert: Freitag 12. September 2003, 07:58
Wohnort: 50.9333300 / 6.3666700

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 ;-)
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'
2bock
User
Beiträge: 94
Registriert: Freitag 12. September 2003, 07:58
Wohnort: 50.9333300 / 6.3666700

Danke BlackJack,
OK. ich werde mir das mal genauer anschauen.

Danke Nochmal.
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Ü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.
Antworten