Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Nazionalità da IP?

  1. #1

    Nazionalità da IP?

    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?

  2. #2
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    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


  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    867
    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.

  4. #4
    @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....

  5. #5
    Ok, pasticciando con phpmyadmin, sono riuscito a immettere tutti i dati; grazie!

  6. #6
    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!

  7. #7
    Uff... leggendo (e copiando di paripasso) dal sito, dovrei mettere questo:
    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); 
    Il punto è che genera un'errore:
    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........ )

  8. #8

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.