[Resolu] Résultat d'un $_SERVER["REMOTE_ADDR"] dan

  • Auteur de la discussion Auteur de la discussion totof78
  • Date de début Date de début
WRInaute discret
Bonjour,

sur un site A, je fais un include d'un script php situé sur un site B :
Code:
<?php
include ('http://www.siteB.com/includes/infos.php');
?>

Dans infos.php, je recherche entre autre l'adresse IP du visiteur :
Code:
function realip() {
  if (isSet($_SERVER)) {
    if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"])) {
     $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    } elseif (isSet($_SERVER["HTTP_CLIENT_IP"])) {
     $realip = $_SERVER["HTTP_CLIENT_IP"];
    } else {
     $realip = $_SERVER["REMOTE_ADDR"];
    }

   }
   else {
    if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
     $realip = getenv( 'HTTP_X_FORWARDED_FOR' );
    } elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
     $realip = getenv( 'HTTP_CLIENT_IP' );
    } else {
     $realip = getenv( 'REMOTE_ADDR' );
    }
   }
   return $realip;
}

Comme vous pouvez vous en douter, je cherche à récuperer l'adresse IP des visiteurs.

Comme j'ai plusieurs sites à gérer, j'ai mit mon script sur l'un d'eux et je l'appelle depuis les autres.

Mon problème est le suivant :
Le script n'affiche pas l'adresse IP du visiteur mais celle du site depuis lequel l'include est réalisé.

bizarre non ?
 
WRInaute accro
Un include a pour effet d'ouvrir un fichier et de lire son contenu dans ta page.

Etant donné que tu fait ton include avec une url, le serveur ouvre donc un fichier en passant par l'extérieur, comme si un internaute ouvrait ce même fichier.

Ouvre ton fichier en mettant :
Code:
include('../chemin/vers/le/fichier.php');

Et si le fichier n'est pas situé sur le même serveur que toi, tu n'a aucune solution que de passer la valeur dans l'url
Code:
include('http://www.example.com/?ip='.$_SERVER['REMOTE_ADDR']);
 
WRInaute impliqué
kazhar a dit:
Et si le fichier n'est pas situé sur le même serveur que toi, tu n'a aucune solution que de passer la valeur dans l'url
Code:
include('http://www.example.com/?ip='.$_SERVER['REMOTE_ADDR']);
??? Ca marche ça ?? :roll: Ca n'a jamais marché chez moi (le passage de paramètres en URL dans un include).

Il vaut mieux utiliser des fonctions "plus faites pour ça" comme file_get_contents ou file ou fopen ...
 
WRInaute accro
Effectivement, les fonctions d'ouverture/fermeture sont à préférer. Désolé d'avoir oublié de le préciser.

Et oui, l'include sur une url fonctionne en fonction de la configuration de php. Mais beaucoup d'hébergeurs le désactivent.
 
Discussions similaires
Haut