Come posso estrapolare la nazionalità del visitatode dal suo IP?
Io so che l'80 è per l'italia ad esempio, ma x gli altri paesi?
poi, basterebbe un substr($ip,0,2) giusto?
Come posso estrapolare la nazionalità del visitatode dal suo IP?
Io so che l'80 è per l'italia ad esempio, ma x gli altri paesi?
poi, basterebbe un substr($ip,0,2) giusto?
Dall'IP non saprei ma c'è una variabile apposita dell'array $_SERVER che puo' farlo per te. ti rimando ad una thread in cui lo spiegavo ad un'altro utente.
http://forum.html.it/forum/showthrea...43#post9584243
![]()
Questo e' una database che contiene tutti i range di ip divisi per stati, e' anche quello che usano le php-stats.....
http://ip-to-country.webhosting.info/
Buttaci un occhio![]()
No pvt per sollecitare risposte, grazie.
@Il_Drugo
l'avevo già visto, ma non mi interessa l'impostazione dell'utente, ma bensì, la provenienza dell'ip.
il sito l'ho visto, e sembra proprio quello che cerco;
solo che usa mySql, ed io non lo so usare bene; quindi chiedo aiuto:
Allora, dal sito mi sono scaricato un txt che è impostato così:
"121195296","121195327","IT","ITA","ITALY"
"121195328","152305663","US","USA","UNITED STATES"
"152305664","152338431","GB","GBR","UNITED KINGDOM"
"152338432","167772159","US","USA","UNITED STATES"
"184549376","201674095","US","USA","UNITED STATES"
ho letto sul sito che si può immettere questi valori in una tabella
IP_FROM NUMERICAL (DOUBLE) Beginning of IP address range.
IP_TO NUMERICAL (DOUBLE) Ending of IP address range.
COUNTRY_CODE2 CHAR(2) Two-character country code based on ISO 3166.
COUNTRY_CODE3 CHAR(3) Three-character country code based on ISO 3166.
COUNTRY_NAME VARCHAR(50) Country name based on ISO 3166
quindi, dopo che io ho creato questa tabella con le giuste colonne, come ce li metto dentro i dati?
poi, nello script php devo mettere
mysql_connect($host,$db_user,$pwd);
mysql_select_db("mio_db");
$query= "SELECT COUNTRY_NAME FROM naz_ip WHERE IP_FROM <= $IPn and IP_TO >= $IPn";
$naz_ip= mysql_query($query);
giusto?
Scusate, ma io non sono abituato ad usare db....![]()
Ok, pasticciando con phpmyadmin, sono riuscito a immettere tutti i dati; grazie!![]()
![]()
Aiuto!
allora, tutto sembrerebbe funzionare bene, se non fosse che credo di non riuscire in un passaggio:
dal sito leggevo che x funzionare, lo script, ha bisogno dell'ip in un formato non puntato; quindi per ricavarlo dice di usare:
$ip_number = sprintf("%u", ip2long($dotted_ip_address));
allora io ho messo:
$ip=getenv('REMOTE_ADDR');
$IPn = sprintf("%u", ip2long($ip));
e poi,passo $IPn alla query.
il punto è che non funziona!
forse per il fatto che già la variabile REMOTE_ADDR applica delle formattazzioni particolari????
Aiuto!
Uff... leggendo (e copiando di paripasso) dal sito, dovrei mettere questo:
Il punto è che genera un'errore:Codice PHP:
$dbh= mysql_connect('localhost','x','x');
mysql_select_db("x_db1");
$country_query = "SELECT COUNTRY_CODE3,COUNTRY_NAME FROM ip_naz ".
"WHERE IP_FROM<=inet_aton('$REMOTE_ADDR') ".
"AND IP_TO>=inet_aton('$REMOTE_ADDR') ";
$country_exec = mysql_query($country_query);
$ccode_array=mysql_fetch_array($country_exec);
$country_code=$ccode_array['country_code3'];
$country_name=$ccode_array['country_name'];
echo "$country_code - $country_name";
mysql_close($dbh);
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ../index.php on line 76
(la linea 76 è $country_code=$ccode_array['country_code3']
Perchè?
(mannaggia a mySql........)