• IPv6 - Application fail

    Wir brauchen IPv6 - auf der IPv6-Konferenz kam das klar zum Ausdruck. Doch die wichtigste Frage ist ja eigentlich: Warum stellen wir nicht um - jetzt und sofort? Diese Frage ist berechtigt. Die Erklärung ist nicht ganz so einfach. Ein anschauliches Beispiel habe ich jedoch gefunden: Elektroautos. Sie sind die PKWs der Zukunft und doch gibt es sie noch nicht einmal zu verkaufen, zumindest keine Serienmodelle. Das Problem liegt also an der Umstellung. Während es bei Elektroautos ein Riesenaufwand ist, die Welt so umzustellen, dass wir Benzin links liegen lassen können, ist es bei IPv6 der Aufwand der globalen Umstellung. Wenn nicht jeder mitspielt gibt es Chaos.

    Doch das eigentliche Thema auf das ich hinaus möchte ist die Funktion verschiedener Applikationen unter IPv6. Zu IPv4-Zeiten war es nicht unüblich, dass man mit der IP z.B. Login-Bindings (Login an IP fesseln) gemacht hat. Dabei gab es eine Art Insider-Trick: Es wurde nicht verglichen ob $alteIP=$neueIP, sondern es wurde verglichen ob die ersten 3 Teile der IP übereinstimmen, unter PHP wie folgt:

    $ip = $_SERVER['REMOTE_ADDR']; #e.g.:  123.123.123.123
    $ip_parts = explode('.',$ip);
    $compare_ip = $ip_parts[0].'.'.$ip_parts[1].'.'.$ip_parts[2]; # 123.123.123
     
    /** DE: nun muss man vergleichen ob $GESPEICHERTE_IP = $compare_ip* ist (das "*" steht für alles) **/
    /** EN: now compare if $SAVED_IP = $compared_ip*   (the "*" stands for all) **/

    Das Problem: Sobald jemand mit einer IPv6-Adresse surft und diese Applikation aufruft wird sie nicht mehr funktionieren und der zuständige Programmierer ist vielleicht gar nicht mehr verfügbar - ärgerlich. Das war natürlich nicht die einzigste Anwendung der Verarbeitung von IPv4-Adressen.

    Für jene die solche Script-Teile verbaut haben gilt ab sofort: eine andere Lösung finden oder zweiseitig kompatibel machen. Die zweiseitige Kompatibilität ist hierbei eine einfache Lösung. Man kann mit RegExp prüfen ob es eine IPv4- oder IPv6-Adresse ist und kann dann die jeweilige zuständige Funktion / Klasse benutzen.

    Wer seine Applikationen auf IPv6-Kompatibilität testen möchte kann sich bspw. Ubuntu >= 9.04 herunterladen. Dort bekommt man, wenn man einen Server einrichtet und auf localhost testet automatisch eine IPv6-Adresse zugewiesen, diese lautet ::1 und nicht mehr wie zu IPv4-Zeiten 127.0.0.1.


Eine Antwort hinterlassen