#!/usr/bin/perl
use Geo::IP:
urePerl;
($part1,$part2,$part3,$part4)=split(/\./,$ENV{REMOTE_ADDR});
$IP_adr=pack("C4",$part1,$part2,$part3,$part4);
($host_name)=(gethostbyaddr("$IP_adr", 2));
my $gi = Geo::IP:
urePerl->open("/path-to/geolitecity.dat",GEOIP_STANDARD);
my $addr = $host_name;
my @mydata = $gi->get_city_record($addr);
$browser=$ENV{'HTTP_USER_AGENT'};
($gebiet,$bla)=split(/\./,$mydata[6]);
Auslesen weiterer Variablen:
Googeln nach "Perl environment values"
Geo::IP:
urePerl ermöglicht sogar die Ausgabe von Städten, wobei die Datenbank frei ist- deswegen natürlich etwas eingeschränkt aber trotzdem für den größten Teil der Nutzer absolut vollwertig.
$mydata[6] ist nur eine Variable, es gehen sogar Längen- und Breitengrade. Weiteres bei CPAN.
Problem in D: VDSL-Leitungen werden z.B. über Knoten geroutet, die mit dem tatsächlichen Standort nix zu tun haben, ebenso wie einige Provider generell.