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

1 réponse

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
    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
    2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > 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
    3. ananias8686 Messages postés 96 Statut Membre > jordane45 Messages postés 30426 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
    4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > ananias8686 Messages postés 96 Statut Membre
       
      Je te parle de cette page
      https://ip-api.com/
      0
    5. ananias8686 Messages postés 96 Statut Membre > jordane45 Messages postés 30426 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