[PHP] Request-Informationen aus UNIQUE_ID extrahieren

Autor: Raphael Eiselstein <rabe_at_uugrn.org>
Datum: Sun, 15 Jun 2014 01:01:00 +0200
Hallo zusammen,

die Umgebungsvariable UNIQUE_ID, die innerhalb eines HTTP-Requests von
httpd ("Apache") durch das Modul mod_unique_id erzeugt wird hat
beispielsweise folgenden Inhalt: U5zPjH8AAQEAAHxN2gIAAAAJ

Die UNIQUE_ID wird je nach Software sehr vielfältig verwendet um eine
eindeutige ID zu haben, die einen einzelnen HTTP-Request eindeutig
bezeichnet: http://httpd.apache.org/docs/2.2/mod/mod_unique_id.html

        The UNIQUE_ID environment variable is constructed by encoding
        the 112-bit (32-bit IP address, 32 bit pid, 32 bit time stamp, 
        16 bit counter) quadruple using the alphabet [A-Za-z0-9_at_-] in 
        a manner similar to MIME base64 encoding, producing 19 characters.

Anwendungsbeispiel: In einer Datenbank oder Logfiles sind irgendwo
UNIQUE_ID enhalten. Es soll nachträglich herausgefunden werden, zu
welchem Zeitpunkt oder von welcher IP-Adresse der hier referenzierte
Request stammt.

Wie muss der Code in PHP aussehen, um aus U5zPjH8AAQEAAHxN2gIAAAAJ die
Informationen "IPv4-Addresse, ServerPID, Timestamp, Counter" zu
erhalten?

Letztlich muss man diesen 19 Zeichen langen String wieder umrechen in
eine 112 Bit lange Zahl und dann die jeweiligen Datenfelder durch
Maskierung und Bit-Shifting zu extrahieren. 

Aber wie geht das alles mit PHP? 

Danke und Gruß
Raphael
-- 
Raphael Eiselstein <rabe@uugrn.org>               http://rabe.uugrn.org/
PGP (neu):            4E63 5307 6F6A 036D 518D  3C4F 75EE EA14 F625 DB4E
.........|.........|.........|.........|.........|.........|.........|..



-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/

Empfangen am 15.06.2014

Dieses Archiv wurde generiert von hypermail 2.2.0 : 15.06.2014 CEST