2010-01-04 6 views
7

Comment obtenir le nom de pays à partir d'une adresse Ip en utilisant Php sans sortir en utilisant un commercial GeoIP Region Edition. S'il vous plaît quelqu'un m'aider?Nom du pays de php

+0

Sans API * commercial * ou sans API GeoIP? – Gordon

Répondre

6

Je ne pense pas que vous pouvez le faire simplement en utilisant PHP, mais j'ai trouvé une solution API gratuite que vous pouvez utiliser. Cela nécessite une publication et une réponse simples. http://www.hostip.info/use.html

exemple post: http://api.hostip.info/get_html.php?ip=12.215.42.19

exemple de réponse: Pays: ÉTATS-UNIS (US) Ville: Sugar Grove, IL

+0

Cela fonctionne-t-il uniquement aux États-Unis? Je ne reçois aucune réponse valable avec mon IP d'Allemagne. –

7

code

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

Résultat

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 
) 

Pour obtenir countryname

echo $expression->countryname; 

Résultat

United States 
+0

En supposant que vous avez 'json_decode()' qui ne vient que de PHP> = 5.2. – Boldewyn

1

Si vous voulez configurer votre propre application est ici la source git de la solution ci-dessus, par Peter (je préfère toujours la solution auto-hébergée au lieu de frapper et de compter sur certains o Ther services):

FreeGeoIP Source Code

0

utilisation apinotes externe geolocation api

Exemple:

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) 

Exemple pour Get Pays Détails Ip Adresse Dans 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 } 
?> 
Questions connexes