Tascha Geschrieben 21. Juli 2009 Teilen Geschrieben 21. Juli 2009 Hallo ihr! Mein Problem ist folgendes: Bei einer Datenbankabfrage geht es unter anderem um IPv4. Der Auszug aus der Datenbank ist folgendermaßen: FIELD TYPE NULL KEY DEFAULT EXTRA ----------------------------------------------------------- ipv4 bit(48) YES NULL ------------------------------------------------------------ ..... ........ ....... ... ....... ........... ------------------------------------------------------------- ...... ....... ........ ... ....... ................ ------------------------------------------------------ Wenn ich das nun Abfrage, bekomme ich als Ausgabe nur einen Hieroglyphen. Vielleicht kennt jemand das Problem und weiß ne schnelle Lösung, ich habe schon woanders gelesen, dass man die Abfrage, so gestalten könnte um ne richtige Ausgabe zu bekommen: $query = "SELECT *, ipv4+0 FROM .........."; Also '+0', hört sich aber irgendwie unlogisch an. Die IP wurde glaube ich Binär gespeichtert. Vielleicht weiß jemand Rat. Vielen Dank lg Tascha Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 21. Juli 2009 Teilen Geschrieben 21. Juli 2009 Hallo ihr! Also '+0', hört sich aber irgendwie unlogisch an. Die IP wurde glaube ich Binär gespeichtert. Vielleicht weiß jemand Rat. Vielen Dank lg Tascha Hallo, dass +0 ist schon korrekt so, alternativ kannst du zur Anzeige auch die BIN() Funktion verwenden. Siehe : MySQL :: MySQL 5.0 Reference Manual :: 8.1.5 Bit-Field Values Gruss Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crash2001 Geschrieben 21. Juli 2009 Teilen Geschrieben 21. Juli 2009 Hmmmm... wenn es bitweise gespeichert wird, dann frage ich mich aber, wieso das 48 Bit braucht. Eine IP-Adresse braucht schliesslich nur 32 Bit. Wie fragst du ab? Und ist evtl der Datentyp falsch, in den du das schreiben willst, was du abfragst? Was kommt denn bei der Abfrage raus? "irgendwelche Hieroglyphen" ist nicht grad aussagekräftig. Was kommt bei der Abfrage raus, von der du mal gehört hast, dass es damit gehen soll? Welche MySQL Version verwendest du? [edit] Ok, hätte mal aktualisieren sollen. [/edit] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 21. Juli 2009 Teilen Geschrieben 21. Juli 2009 Hmmmm... wenn es bitweise gespeichert wird, dann frage ich mich aber, wieso das 48 Bit braucht. Eine IP-Adresse braucht schliesslich nur 32 Bit. Diese Frage solltest Du definitiv demjenigen stellen, der die Tabelle entworfen hat, denn mit den 48 Bit handelst Du Dir Probleme ein, denn ist die IPv4 in den ersten 32 Bit gespeichert, oder in den letzten. Es mag evtl völlig an den Haaren herbei gezogen sein, aber ich könnte mir folgendes vorstellen: 32 Bit für die IP + 8 Bit für den "/" und 8 Bit für die Bitanzahl der Subnetzmaske (Classless Inter-Domain Routing ? Wikipedia) = 48 Bit. Damit hättest Du dann IP und Subnetzmaske zusammen. Ich gehe mal nun von 32 Bit für eine IPv4 aus: D.h. Du musst Deine 32 Bit Zahl in die 4 Okette zerlegen, durch ein entsprechendes Shift auf Bitebene und dann eben diese Zahl als Integer darstellen. Dann hast Du die bekannten Oketts Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tascha Geschrieben 22. Juli 2009 Autor Teilen Geschrieben 22. Juli 2009 Guten Morgen! Erstmal danke ich euch für die Antworten, leider hat mir das immernoch nicht ganz geholfen. Arbeite gerade mit ExtJS und glaube, dass es daran liegt. Wenn ich die Abfrage über die Konsole starte funktioniert es mit +0. In meiner Oberfläche allerdings nicht. Muss irgendwie was im Grid ändern, werde wohl mal ins ExtJS- Forum umziehen. Liebe Grüße Tascha Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.