Von Timestamps und IP-Adressen

Netzwelt, Reallife Kommentieren

Mal was für die Coder von euch: Heute hatte ich auffa Arbeit die zweifelhafte Ehre, ein Script zu schreiben, welches die Active-Directory-User auflistet, deren Passwörter in der aktuellen Woche ablaufen. Ein Paar Felder per LDAP aus dem AD auslesen ist ja keine Kunst, aber der Timestamp, der das Datum der letzten Passwortänderung enthielt verwirrte mich dann doch etwas: 128583432437470716 entspricht z.Bsp. dem 19.06.2008.

Es hat mich einige Google-Aufrufe gekostet, bis ich herausgefunden habe, dass MS in seiner unendlichen Weisheit im Timestamp nicht wie Linux die Sekunden seit dem 01.01.1970 zählt, sondern jede 100. Nanosekunde seit dem 01.01.1601!!! Das heißt jede Sekunde wird der Timestamp und 10 Millionen erhöht. Das nenn ich mal präzise.

Hier der Code der das komische Microsoftdingen in einen gescheiten Unix-Timestamp umrechnet:

  1. <?php
  2. function win32unixtime($tstamp)
  3. {
  4. $secsAfterADEpoch = $tstamp / (10000000);
  5. $ADToUnixConvertor=((1970-1601) * 365.242190) * 86400;
  6. return (intval($secsAfterADEpoch-$ADToUnixConvertor));
  7. }
  8. ?>

Nun zum eigentlichen Thema dieses Blogeintrags: Wählt man sich ins Internet ein, vergibt der ISP ja eine IP, welche sich in eines geografischen Gebietes alle ähneln. Anhand der IP-Adresse kann man also einen Internetnutzer grob lokalisieren. Dies ist ganz praktisch, wenn man zum Beispiel lokalisierte Werbung auf einer Webseite anzeigen will, oder Betrügereien beim Onlineumfragen aufdecken will. Dienste, welche eine sog. Geo-Location-Database anbieten gibt es zahlreiche, jedoch sind diese meist entweder kostenpflichtig oder veraltet.

Marc-Andre Caron stellt hingegen eine kostenlose, monatliche aktualisierte Datenbank zur Verfügung mit welcher man Land, Stadt, Postleitzahl und sogar Längen- und Breitengrad zu einer IP-Adresse ermitteln kann. Ein klasse Service, wie ich finde 🙂

(via I am Jeriko)

WP Theme & Icons by N.Design Studio
Einträge RSS Kommentare RSS Anmelden