2010-01-04 9 views
7

Come ottenere il nome del paese da un indirizzo IP utilizzando Php senza l'utilizzo di un'edizione commerciale GeoIP Region. Per favore qualcuno mi aiuta?Nome del paese da php

+0

Senza un'API * commerciale * o senza alcuna API GeoIP? – Gordon

risposta

7

$json = file_get_contents('http://freegeoip.appspot.com/json/66.102.13.106'); 
$expression = json_decode($json); 
print_r($expression); 

Risultato

stdClass Object 
(
    [status] => 1 
    [ip] => 66.102.13.106 
    [countrycode] => US 
    [countryname] => United States 
    [regioncode] => CA 
    [regionname] => California 
    [city] => Mountain View 
    [zipcode] => 94043 
    [latitude] => 37.4192 
    [longitude] => -122.057 
) 

Per ottenere countryname

echo $expression->countryname; 

Risultato

United States 
+0

Supponendo di avere 'json_decode()' che viene fornito solo da PHP> = 5.2. – Boldewyn

1

Se si vuole impostare la propria applicazione qui è la fonte git della soluzione di cui sopra, da Peter (preferisco sempre la soluzione self hosted invece di colpire e fare affidamento su alcuni o ther di servizio):

FreeGeoIP Source Code

0

Usa apinotes esterno geolocation api

Esempio:

http://apinotes.com/ipaddress/ip.php?ip=27.62.184.235

URL: http://apinotes.com/ipaddress/ip.php 
Parameter Name: ip 
Value: 27.62.184.23 (ipv4 address) 

Esempio Per ottenere Paese dettagli da IP Address In Php

<?php 
$ip = '27.62.184.235'; 
$json_data = file_get_contents("http://apinotes.com/ipaddress/ip.php?ip=$ip"); 
$ip_data = json_decode($json_data, TRUE); 
if ($ip_data['status'] == 'success') { 
    ?> 
    <p>Ip Address: <?php echo $ip_data['ip'] ?></p> 
    <p>Country Name: <?php echo $ip_data['country_name'] ?></p> 
    <p>Country Code: <?php echo $ip_data['country_code'] ?></p> 
    <p>Country Code (3 digit): <?php echo $ip_data['country_code3'] ?></p> 
    <p>Region Code: <?php echo $ip_data['region_code'] ?></p> 
    <p>Region Name: <?php echo $ip_data['region_name'] ?></p> 
    <p>City Name: <?php echo $ip_data['city_name'] ?></p> 
    <p>Latitude: <?php echo $ip_data['latitude'] ?></p> 
    <p>Longitude: <?php echo $ip_data['longitude'] ?></p> 
<?php } 
?>