Sortierung IP-Adressen

Guten Tag!

Ich habe eine Liste von IP-Adressen die ich sortieren sollte.

Zum Beispiel:
181.102.52.102
191.02.12.100
11.02.12.101

Leider kann ich diese nicht normal mit ASC und DESC Sortieren.
Wie muss ich vorgehen damit die IP- Adressen richtig sortiert werden.

Gruess

Ruth
 
Also wenn du alles IP-Adressen in einem Array hast könntest du sie durch
PHP:
sort($array, SORT_NUMERIC);
sortieren lassen.
 
Als Datenbankabfrage müsste das ganze so aus sehen:
PHP:
SELECT ... FROM ... WHERE ... ORDER BY col_name [ASC | DESC]

Danke und bis bald.
g3radiochris
 
Danke für die Antworten.

Habe das Ganze nicht in einem Array und möchte aus Programm technischen Gründen nicht in ein Array speichern, wenn sichs vermeiden lässt.

Die zweite Variante die von g3radiochris angegeben wurde, funktioniert eben aufgrund des Aufbaus eine IP- Adresse nicht um IP- Adressen zu sortieren. Was ich habe ist kein Syntax Problem.

Bin also immer noch auf der Suche nach einer Problemlösung.
 
Vielleicht du die IP-Adressen in einem anderen Format speichern, etwa im Hexadezimalformat:
Code:
181.102.52.102 ? B5663466
191.102.12.100 ? BF660C64
 11.102.12.101 ? 0B660C65
 
Das klingt mir nach einer Vernünftigen Lösung.
Die Lösung welche ich habe, läuft im Moment schon Produktiv.
Mir stellt sich jetzt nur die Frage wie kriege ich des ins Hexadezimalzahl Format.

Hab ja, ein Hexadezimale Zahl nicht zur Auswahl in der mySQL Datenbank.
Wie ich gesehen habe, wurde von meinem Vorgänger zum speichern dieser
Daten ein Text gewählt.Wäre mein Problem unter Umständen schon gelöst, wenn ich dafür einen anderen Datentyp wählen würde? (Oder kann ich es in gar keinen anderen Datentyp speichern aufgrund der Punkte ?)

Eins ist mir noch nicht ganz klar, Gegebenenfalls ich würde es in Hexadezimalen um konvertieren.
Wäre eine solche Vorgehensweise korrekt ? Oder wie war das gemeint ?

1. Alle bestehenden Zahlen der Datenbank um konvertieren und speichern.
2. Anschliessend bei neuen Datensätzen die IP in Hexadezimalzahl umwandeln und in DB speichern.
3.Beim Anzeigen Hexadezimalzahl wieder in einer IP- Adresse konvertieren.
 
Super Markus31, das scheint mir eine vernünftige Lösung :)
Hab den Artikeln beim Durchblättern leider nicht gefunden. Werde das gleich mal testen.
Ist immer schön wie schnell einem hier in diesem Forum geholfen wird.

Gruess

Ruth
 
Hallo Zusammen!

Habs jetzt noch mal anders gelöst finde ich fast noch praktischer:

Code:
SELECT AnlageRouterIpAdr
FROM Anlagen
ORDER BY inet_aton( AnlageRouterIpAdr )

Danke für eure Hilfe.

Gruess

Ruth
 
Zurück