Recuperer IP dans un fichier Json

Résolu
ananias8686 Messages postés 96 Statut Membre -  
ananias8686 Messages postés 96 Statut Membre -
Bonjour,
Je voudrais afficher les infos géo d'un ip.
J'utilise ce site site qui m'aide à avoir beaucoup d'info sur l'IP(ip-api.com/json).
Mon code php me m'envoie une erreur 500 "HTTP ERROR 500"
<?php
$ip = $_SERVER["REMOTE_ADDR"];
$api_url = 'http://ip-api.com/json/'.$ip.'?fields=country,city,proxy';
$api_content = file_get_contents($api_url);
$api_content_array = json_decode($api_content,true);
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
        <title>Infos IP</title>
        </head>
        <body>
     <?php
echo 'IP:' .$ip; </br>
echo 'VILLE:'.$api_content_array['city'];</br>
echo 'PAYS:'.$api_content_array['country'];</br>

echo 'VPN:'.$api_content_array['proxy'];</br>
        ?>
        </body>
</html>

Je n'arrive pas à récupérer les infos sur l'IP. J'ai besoin d'aide. Merci
A voir également:

1 réponse

jordane45 Messages postés 40050 Statut Modérateur 4 756
 
Bonjour,

Tes <br> sont mal placés...
Il faut les concaténer avec le reste de ta chaine...
echo 'IP:' .$ip; </br>
echo 'VILLE:'.$api_content_array['city'];</br>
echo 'PAYS:'.$api_content_array['country'];</br>
echo 'VPN:'.$api_content_array['proxy'];</br>

A changer par
echo 'IP:' .$ip . '</br>';
echo 'VILLE:' . $api_content_array['city'] . '</br>';
echo 'PAYS:' . $api_content_array['country'] . '</br>';
echo 'VPN:' . $api_content_array['proxy'] . '</br>';

1
ananias8686 Messages postés 96 Statut Membre
 
Au fait api_content_array['proxy'] est un booléen, comment puis-je le concatener pour avoir un bon résultat svp. Il retourne un true même sans VPN actif
echo 'VPN:' . $api_content_array['proxy'] ? 'ATTENTION VPN actif' : 'Pas de VPN actif' . '</br>';
0
jordane45 Messages postés 40050 Statut Modérateur 4 756 > ananias8686 Messages postés 96 Statut Membre
 
Il retourne un true même sans VPN actif

Tu as la main sur le script qui te retourne les données ? moi non. je ne peux donc pas le modifier.
0
ananias8686 Messages postés 96 Statut Membre > jordane45 Messages postés 40050 Statut Modérateur
 
Voici le code:
<?php
$ip = $_SERVER["REMOTE_ADDR"];
$api_url = 'http://ip-api.com/json/'.$ip.'?fields=country,city,proxy';
$api_content = file_get_contents($api_url);
$api_content_array = json_decode($api_content,true);

 //corps du message

echo 'INFORMATIONS DU SERVEUR ' ;    
echo 'VILLE:' . $api_content_array['city'] . '</br>';
echo 'PAYS:' . $api_content_array['country'] . '</br>';
echo 'VPN:' . $api_content_array['proxy'] ? 'ATTENTION VPN active' : 'Pas de VPN active' . '</br>';
?> 
1
jordane45 Messages postés 40050 Statut Modérateur 4 756 > ananias8686 Messages postés 96 Statut Membre
 
Je te parle de cette page
https://ip-api.com/
0
ananias8686 Messages postés 96 Statut Membre > jordane45 Messages postés 40050 Statut Modérateur
 
Je pense que c'est la concaténation qui a de problème.
Quand je fais
echo $api_content_array['proxy'] ? 'VPN actif' : 'PAS DE VPN';

Ça marche correctement, ça retourne un true(VPN ACTIF) si je suis en mode VPN et un false(PAS DE VPN) quand suis pas en VPN.

Essayer ce script, ça marche parfaitement sans la concaténation.
<?php
$ip = $_SERVER["REMOTE_ADDR"];
$api_url = 'http://ip-api.com/json/'.$ip.'?fields=country,city,proxy';
$api_content = file_get_contents($api_url);
$api_content_array = json_decode($api_content,true);

 //corps du message
echo $api_content_array['proxy'] ? 'VPN actif' : 'PAS DE VPN';
?>

Par contre quand j'essaie de concatener, ça cause problème.
0