獲取電腦的地理位置,通過 IP

PHP 程式設計: 如果您需要確定一個給定 ip 位址的地理位置, 所以它很輕鬆! Com ipdetails você pode obter dados tais como país, 國家和城市.

圖示

ipdetails-20121116.zip
1.77 KB 5930 下載

作者: Chetan Mendhe
País: India
Update: 泰勒李

關於

Com a classe ipdetails você pode obter detalhes sobre a origem e localização geográfica de um computador através do seu endereço IP. Dentre as principais informações, temos: Nome do país, o código do país, estado (地區), cidade, código postal, latitude, longitude, código de área, etc. Algumas informações não estão disponíveis para o Brasil.

Uso

Basta importar a classe class.ipdetails.php e instanciar o objeto da classe passando como parâmetro do construtor o “IP” que se quer obter informações. Finalmente, obtenha a informação desejada fazendo a chamada ao respectivo método.

示例

ipdetails.php | Arquivo criado para demonstração

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?PHP
    include("class.ipdetails.php");
    $ip = $_SERVER['REMOTE_ADDR'];  
    #$ip = "189.73.71.160";
    $ipdetails = 新增功能 ipdetails($ip); 
    $ipdetails->scan();
    回聲 "<b>IP:</b>        ".$ip                        ."<Br />"; 
    回聲 "<b>País:</b>      ".$ipdetails->get_country()  ."<Br />";
    回聲 "<b>Estado:</b>    ".$ipdetails->get_region()   ."<Br />";
    回聲 "<b>Cidade:</b>    ".$ipdetails->get_city()     ."<Br />";
    回聲 "<b>Latitude:</b>  ".$ipdetails->get_latitude() ."<Br />";
    回聲 "<b>Longitude:</b> ".$ipdetails->get_longitude()."<Br />";
    回聲 "<b>Código país:</b> ".$ipdetails->get_countrycode()."<Br />";
    回聲 "<b>Código continente:</b> ".$ipdetails->get_continentcode()."<Br />";
    回聲 "<b>Código moeda:</b> ".$ipdetails->get_currencycode()."<Br />";
    回聲 "<b>Símbolo moeda:</b> ".htmlspecialchars_decode($ipdetails->get_currencysymbol())."<Br />";
    回聲 "<b>Cotação moeda (dólar):</b> ".$ipdetails->get_currencyconverter()."<Br />";    
?>

示例 | O exemplo acima resultará na seguinte saída

IP: 189.73.71.160
País: Brazil
Estado: Santa Catarina
Cidade: Blumenau
Latitude: -26.933300018311
Longitude: -49.049999237061
Código país: BR
Código continente: SA
Código moeda: BRL
Símbolo moeda: R$
Cotação moeda (dólar): 1.8889999377
總點擊數: 14356

12 comentários 講習 “獲取電腦的地理位置,通過 IP

    • É verdade, deixou de funcionar. Mas atualizei o código-fonte utilizando outro servidor, inclusive com algumas opções a mais, conforme exemplo acima. É só baixar novamente e testar! Obrigado por avisarT+

  1. Alexandre Correa 說︰:

    Muito bom o código, 祝賀!
    Fiz alguns testes e em alguns casos não mostrou o Estado, você saberia dizer o porque?

    • Oi Alexandre, olha, eu fiz algumas adaptações no código-fonte original, pois havia parado de funcionar. Agora estou obtendo dados de outro servidor, que é o http://www.geoplugin.net/. Você poderia fazer um teste direto lá para checar essa falha e postar aqui, se quiser… 說︰!

  2. 費爾南多 說︰:

    Continua dando erro quando testo no servidor PHP os arquivos disponiveis:

    Notice: Use of undefined constant geoplugin_countryNameassumed ‘geoplugin_countryName’ 在 C:\xampp\htdocs\sap\class.ipdetails.php on line 116

    Notice: Undefined index: geoplugin_countryName in C:\xampp\htdocs\sap\class.ipdetails.php on line 116
    País:

    Notice: Use of undefined constant geoplugin_regionassumed ‘geoplugin_region’ 在 C:\xampp\htdocs\sap\class.ipdetails.php on line 126

    Notice: Undefined index: geoplugin_region in C:\xampp\htdocs\sap\class.ipdetails.php on line 126
    Estado:

    Notice: Use of undefined constant geoplugin_cityassumed ‘geoplugin_city’ 在 C:\xampp\htdocs\sap\class.ipdetails.php on line 136

    Notice: Undefined index: geoplugin_city in C:\xampp\htdocs\sap\class.ipdetails.php on line 136
    Cidade:

    Notice: Use of undefined constant geoplugin_latitudeassumed ‘geoplugin_latitude’ 在 C:\xampp\htdocs\sap\class.ipdetails.php on line 156

    Notice: Undefined index: geoplugin_latitude in C:\xampp\htdocs\sap\class.ipdetails.php on line 156
    Latitude:

    Notice: Use of undefined constant geoplugin_longitudeassumed ‘geoplugin_longitude’ 在 C:\xampp\htdocs\sap\class.ipdetails.php on line 166

    Notice: Undefined index: geoplugin_longitude in C:\xampp\htdocs\sap\class.ipdetails.php on line 166
    Longitude:

    Notice: Use of undefined constant geoplugin_countryCodeassumed ‘geoplugin_countryCode’ 在 C:\xampp\htdocs\sap\class.ipdetails.php on line 96

    Notice: Undefined index: geoplugin_countryCode in C:\xampp\htdocs\sap\class.ipdetails.php on line 96
    Código país:

    Notice: Use of undefined constant geoplugin_continentCodeassumed ‘geoplugin_continentCode’ 在 C:\xampp\htdocs\sap\class.ipdetails.php on line 195

    Notice: Undefined index: geoplugin_continentCode in C:\xampp\htdocs\sap\class.ipdetails.php on line 195
    Código continente:

    Notice: Use of undefined constant geoplugin_currencyCodeassumed ‘geoplugin_currencyCode’ 在 C:\xampp\htdocs\sap\class.ipdetails.php on line 221

    Notice: Undefined index: geoplugin_currencyCode in C:\xampp\htdocs\sap\class.ipdetails.php on line 221
    Código moeda:

    Notice: Use of undefined constant geoplugin_currencySymbolassumed ‘geoplugin_currencySymbol’ 在 C:\xampp\htdocs\sap\class.ipdetails.php on line 230

    Notice: Undefined index: geoplugin_currencySymbol in C:\xampp\htdocs\sap\class.ipdetails.php on line 230
    Símbolo moeda:

    Notice: Use of undefined constant geoplugin_currencyConverterassumed ‘geoplugin_currencyConverter’ 在 C:\xampp\htdocs\sap\class.ipdetails.php on line 239
    Cotação moeda (dólar): 0

    • 費爾南多, obrigado por avisar. Na verdade o código estava funcionando corretamente, só que como faltava aspas nas chaves de alguns arrays, então estava sujeito mostrar um aviso (notice) dependendo da sua configuração de erros no php.ini. Em todo caso, fiz a devida correção. O que você deve atentar também é que a variável $ip precisa receber um IP válido na Internet. Se você rodar o código do arquivoexample.phpna sua máquina local (本地主機) sem colocar um IP válido, logicamente $ip = $_SERVER[‘REMOTE_ADDR’] irá pegar seu IP local 127.0.0.1 e não irá funcionar. Favor baixar novamente os arquivos que postei e faça bom uso… 謝謝你!

  3. GOULART 說︰:

    Prezado Taylor,
    Apesar do script ser de 2011, só hoje resolvi colocá-lo em processo.
    Ates de qqr coisa gostaria de agradecer sua ajuda e dizer que fiz o download da última versão (http://www.geoplugin.net) mas, conforme alguns posts anteriores a CIDADE e o ESTADO continuam sem aparecer.
    Poderia verificar?
    Aguardo seu retorno – 謝謝

    • De fato, dependendo do IP oGeopluginnão retorna a cidade e estado. Infelizmente eu precisaria encontrar um webserver free para resolver isto. A maioria dos Geolocator confiáveis cobram uma taxa mensal para entregar estas informações.

留言

您的電子郵件地址將不會發佈. 與標記必填的欄位 *