XML-RPC-Bug bei WordPress umgehen

Das WordPress-Blogsystem verwendet XML-RPC als Schnittstelle für Desktopanwendungen wie beispielsweise den Windows Live Writer (oder einen anderen beliebigen Client), um darüber neue Beiträge zu empfangen und zu speichern.

Seit der Version 2.6.1 von XML-RPC gibt es einen Bug, der dazu führt, dass das per Desktop-Client übertragene HTML zerstört wird. So wird beispielsweise

<p>Hallo Welt!></p>

zu


pHallo Welt!/p.

Wer das Problem quasi von einem Tag auf den anderen hat, bei dem wurde offensichtlich ein Update des Webservers vorgenommen. Nur ist es hier leider so, dass Nutzer von Webhosting-Angeboten keinen oder nur selten einen Einfluss darauf haben, welche Module für PHP geladen werden. So ist eine problematische XML-RPC nur mit Hilfsmitteln zu umgehen.

Ein Patch für WordPress umgeht das Problem

Weiterlesen

Veröffentlicht unter Wordpress | Verschlagwortet mit , , , , | Kommentare deaktiviert für XML-RPC-Bug bei WordPress umgehen

Rechnen mit IP-Adressen, Adressräume bestimmen

Manchmal kann es ganz schön nützlich sein, wenn man IP-Adressen (zum Beispiel in der Form 192.168.0.1) so umrechnen kann, dass sie wie Zahlen verwendet werden können. Ein Beispielszenario:

In einer Datenbank befinden sich IP-Adressbereiche sowie die Regionen, denen diese Adressen zugeteilt sind. Möchte man nun herausfinden, zu welcher Region eine IP-Adresse gehört, müsste man eine Datenbankabfrage ausführen können, die so etwas möglich macht:

Finde Zeile, in der Wert >= von und Wert <= bis

Oder in SQL:

SELECT FROM ip2region WHERE $ip >= ip_from and $ip <= ip_from;

Damit genau das klappt, müssen wir unsere IP-Adressen in Dezimalzahlen umwandeln. Im Prinzip geht das so:

Die IP-Adresse wird in ihre Oktette aufgetrennt. Aus 192.168.0.1 wird 192, 168, 0 und 1.


Das erste Oktett wird mit 256³ multipliziert, das zweite mit 256², das dritte mit 256, das vierte mit 1. Diese werden anschließend addiert.

192*256³ + 168*256² + 0*256 + 1*1

Als Dezimalzahl ausgedrückt wird aus unserer IP-Adresse

3232235521.

Angenommen, wir haben einen Adressbereich, der von 192.168.0.1 bis 192.168.0.16 reicht und suchen die Adresse 192.168.0.4, dann landen wir mit der oben aufgeschriebenen Abfrage und in dezimal umgerechneten IP-Adressen einen Volltreffer, weil 3232235524 zwischen 3232235521 und 3232235536 liegt.

Bevor Sie jetzt selbst nach Wegen suchen, IP-Adressen per Explode zu trennen und mit Foreach und Ausnahmen zu behandeln… PHP stellt bereits die Funktion ip2long() bereit, die recht einfach zu verwenden ist:

function getDecimalIP(){
    return ip2long($_SERVER['REMOTE_ADDR']);
}
Veröffentlicht unter Datenbanken, Rechnen | Verschlagwortet mit , , , , | Kommentare deaktiviert für Rechnen mit IP-Adressen, Adressräume bestimmen