Recuperer IP dans un fichier Json [Résolu]

Signaler
Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020
-
Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020
-
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

1 réponse

Messages postés
29884
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 octobre 2020
2 887
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>';

Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020
>
Messages postés
29884
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 octobre 2020

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>';
?> 
Messages postés
29884
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 octobre 2020
2 887 >
Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020

Je te parle de cette page
https://ip-api.com/
Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020
>
Messages postés
29884
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 octobre 2020

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.
Messages postés
29884
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 octobre 2020
2 887 >
Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020

Soit tu ajoutes des parenthèses dans ta concaténation, soit (et c'est préférable...) tu découpes ton code.
$isVPN = $api_content_array['proxy'] ? 'ATTENTION VPN activé' : 'Pas de VPN activé' ;
echo 'VPN:' . $isVPN. '</br>';
Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020
>
Messages postés
29884
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 octobre 2020

Ça fonctionne parfaitement.
Merci!