sinvoll währe dies über das apache mod_geoip bereits vor dem php code abzufangen....

alternative ohne zusätzliche apache oder php module anhand des hosts allerdings nur mit manueller pflege gut nutzbar ...

PHP-Code:
<?php
$ip 
$_SERVER['REMOTE_ADDR'];
// Host ermitteln
$host gethostbyaddr($ip);
// Host-Korrekturen
$host strtolower($host);
$hostTrans = array(
  
'.arcor-ip.net'=>'.de',  '.t-dialin.net'=>'.de',
  
'.sui-inter.net'=>'.ch''.drei.com'=>'.at',
  
'.proxad.net'=>'.fr',    '.gaoland.net'=>'.fr',
  
'.mchsi.com'=>'.us',     '.comcast.net'=>'.us',
  );
$host strtr($host$hostTrans);
// Herkunftsland (TLD) ausschneiden
$country = (strpos($host'.')===false) ?
           
$host :
           
substr(strrchr($host'.'), 1);
// Fehler bei gethostbyaddr()
if($ip === $host)
  
$country '?';

# Mögliche Inhalte von $country:
# de, uk, com, ?, localhost
?>
alternative mit http://dev.maxmind.com/geoip/legacy/geolite/

gibt da viele möglichkeiten...
http://www.designerscripte.net/showt...ie-Ganze-Seite!