Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Geolocalizzazione PHP

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500

    Geolocalizzazione PHP

    Salve ragazzi,
    mi servirebbe uno script che permette la geolocalizzazione, non mi serve il comune o la via (anche perchè è semi-impossibile trovarli), mi basterebbe la provincia.

    Qualcuno ha utilizzato/utilizza script di questo genere?

    grazie.

  2. #2
    Possiamo intercettare l'IP di provenienza del visitatore e localizzare città e stato (regione) dell'utente. (ricordo che tale script non va usato per violazione) ma ti ho dato un idea

    Lo script si appoggia a un servizio on line, http://ipinfodb.com/ip_locator.php, da cui possiamo (intervenendo sullo script presentato) ricavare anche latitudine, longitudine e hostname.

    Questo il codice di base (per l'esecuzione è richiesto PHP 4 >= 4.0.2, PHP 5):
    Codice PHP:
    function detect_city($ip) {

        
    $default 'Roma, Lazio';
        
        if (!
    is_string($ip) || strlen($ip) < || $ip == '127.0.0.1' || $ip == 'localhost')
        
    $ip '8.8.8.8';
        
        
    $curlopt_useragent 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)';
        
        
    $url 'http://ipinfodb.com/ip_locator.php?ip=' urlencode($ip); 
        
    $ch curl_init();
        
        
    $curl_opt = array(
        
    CURLOPT_FOLLOWLOCATION => 1,
        
    CURLOPT_HEADER => 0,
        
    CURLOPT_RETURNTRANSFER => 1,
        
    CURLOPT_USERAGENT => $curlopt_useragent,
        
    CURLOPT_URL => $url,
        
    CURLOPT_TIMEOUT => 1,
        
    CURLOPT_REFERER => 'http://' $_SERVER['HTTP_HOST'],
        );
        
        
    curl_setopt_array($ch$curl_opt);
        
        
    $content curl_exec($ch);
        
        if (!
    is_null($curl_info)) {
        
    $curl_info curl_getinfo($ch);
        }
        
        
    curl_close($ch);
        
        if ( 
    preg_match('{[*]City : ([^<]*)}i'$content$regs) ) {
        
    $city $regs[1];
        }
        if ( 
    preg_match('{[*]State/Province : ([^<]*)}i'$content$regs) ) {
        
    $state $regs[1];
        }
        
        if( 
    $city!='' && $state!='' ){
        
    $location $city ', ' $state;
        return 
    $location;
        }else{
        return 
    $default;
        }
        
        }
       
        
    $mio_ip $_SERVER['REMOTE_ADDR'] ;
       
        echo 
    detect_city($mio_ip); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Io sono di Bergamo e questo script mi restituisce come output "Roma,Lazio"

  4. #4
    ma infatti ti ho messo le sintassi sta a te modificarlo a tuo piacere

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Si ma il problema è che lo script non funziona, io sono di Bergamo, non di Roma.

    Capito il problema?

  6. #6
    ripeto...devi modificarlo per far si che funzioni come vuoi te...
    poi altra cosa... non ti dice chiaramente la posizione esatta ma dove ip e collegato al datacenter

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    37
    Prova con le api di google maps. Sono disponibili in javascript ma non so se ci siano anche in php.

  8. #8
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Il problema fondamentale sarebbe che la geolocalizzazione tramite l'indirizzo IP non è necessariamente il metodo più precisio. Nel tuo caso per esempio sembra che il tuo IP è stato registrato su Roma, anche se poi viene assegnato ai clienti di Bergamo.

    Potresti provarlo con http://en.wikipedia.org/wiki/W3C_Geolocation_API ma anche qui l'IP viene usato come dato principale.

    In breve, trovare la posizione del utente in modo automatico non è proprio sempre precisio (per esempio potrebbe usare un proxy o VPN) e spesso è meglio chiedere all'utente.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

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.