Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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]

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

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.