Recuperer IP dans un fichier Json

Résolu
ananias8686 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   -  
ananias8686 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 86 Date d'inscription   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > ananias8686 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention  
 
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 86 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > ananias8686 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention  
 
Je te parle de cette page
https://ip-api.com/
0
ananias8686 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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