2017-02-05 4 views
0

Je tripote avec freegeoip.net, essayant d'obtenir plus d'informations pour l'IP de mes visiteurs. Je peux récupérer avec succès des informations de tableau pour IP de l'utilisateur, mais ne peux pas sembler briser le tableau à part et obtenir des variables individuelles pour IP, Ville, Code de pays, etc.PHP - print GeoIP array

tableau Résultat:

Array ([ip] => 77.99.179.98 [country_code] => GB [country_name] => United Kingdom [region_code] => ENG [region_name] => England [city] => Gloucester [zip_code] => GL1 [time_zone] => Europe/London [latitude] => 51.8333 [longitude] => -2.25 [metro_code] => 0) 

PHP

<?php 
$ip = "77.99.179.98"; 

$geoip = json_decode(file_get_contents('http://freegeoip.net/json/'.$ip), true); 
print_r($geoip); 

foreach ($geoip as $result) { 
    echo $result['ip']."<br>"; 
} 

?> 

EDIT: Je reçois maintenant une erreur Warning: Illegal string offset 'ip' in ... on line 9, mais le premier chiffre de l'adresse IP est renvoyé ... wth?

+0

Qu'est-ce que la suite du tableau? Est-ce le contenu de '$ geoip'? –

+0

Oui, voir 'foreach ($ geoip as $ result) {' – Armitage2k

+0

Bon alors vous devrez les décoder en utilisant 'json_decode ($ geoip, true)' so - '$ geoip json_decode (file_get_contents ('http: // freegeoip. net/json /'.$ ip), ' –

Répondre

1

Enfin!

<?php 
$ip = "77.99.179.98"; 

$ip_data = file_get_contents('http://freegeoip.net/json/'.$ip); 
$data = json_decode($ip_data); 

print_r($data); 

echo "<br><br>"; 

echo htmlspecialchars($data->country_name); 

?> 
0

vous pouvez easly obtenir des variables individuelles:

<?php 
$geoip = json_decode(file_get_contents('http://freegeoip.net/json/'.$‌​ip); 
$ip=$geoip['ip']; 
$country=$geoip['country_name'];// visitor country 
echo "<br>".$ip; 
echo "<br>".$country; 
?> 

Si vous voulez afficher toutes les informations des visiteurs:

<?php 
$geoip = json_decode(file_get_contents('http://freegeoip.net/json/'.$‌​ip)); 
foreach ($geoip as $result) { 
    echo $result."<br>"; 
} 
?>