io lo ho appena fatto per il mio ^^
quello che devi fare è usare un servizio di geolocalizzazione ed estrarre la regione
( questi servizi sopratutto se gratuiti non sono mai affidabili al 100% ad esempio se mi connetto tramite il wimax mi risulta abruzzo anziché Lombardia )
cmq io uso un servizio chiamato utrace.de
Codice PHP:
<?Php //trovacomune
//restituisce una stringa con all'interno il comune di provenienza dell'utente
//connesso in base al suo ip
function trovacomune(){
//trovo il tuo comune
error_reporting(0);
$myip=$_SERVER['REMOTE_ADDR'];
if($myip!="127.0.0.1"){
$dir1="http://xml.utrace.de/?query=";
$dir2=$myip;
$dir3=$dir1.$dir2;
$apifile = file($dir3);
//a questo punto $apifile è la risposta xml del webserver, devo solo trovare nel testo ciò
// che mi serve e lo faccio con str_replace e trim
$region=$apifile[7]; //la risposa è nella 7ma riga
$region=str_replace("<region>", "", $region); $region=str_replace("</region>", "", $region);
$region=trim($region); }
else{ $region="gazzo veronese"; }
return $region; }
?>
la funzione trovacomune quando chiamata prende il tuo ip, esegue un collegamento al webserver di geolocalizzazione e restituisce la region dal file xml che gli viene passato.
l'if che ho inserito era solo per non avere stupidi errori quando testo il tutto in locale e quindi non posso contattare il web server.
Il web server che ti ho passato è gratuito fino a 100 query al gg poi bisogna prendere la licenza commerciale.
purtroppo la region che fornisce è un comune solitamente quindi ti consiglio di far passare poi il dato in un db che trasforna il comune in una regione ( ne ho costruito uno apposta con i file csv che scarichi dal sito dell'istat ) non è troppo difficile.
PS: il tuo server deve essere abilitato al traffico server vs server
( servizi gratuiti come altervista non lo sono quindi controlla )
spero ti sia utile