Trouver une ip et l'afficher même derrière un proxy

Description

Trouver une ip et l'afficher même derrière un proxy, une base pour faire un sniffer pour des stats ou avec une base ou surveiller un repertoire , une erreur 404 à renvoyer par mail ... idée récupérer l'ip est l'écrire dans un fichier txt ou dans une table mysql. Dans le zip un exemple pour indiquer une erreur 404 avec l'ip envoyer par mail et l'adresse de la page demandée !

Source / Exemple :


<?php

function get_real_ip()
{
     $ip = false;
     if(!empty($_SERVER['HTTP_CLIENT_IP']))
     {
          $ip = $_SERVER['HTTP_CLIENT_IP'];
     }
     if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
     {
          $ips = explode(", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
          if($ip)
          {
               array_unshift($ips, $ip);
               $ip = false;
          }
          for($i = 0; $i < count($ips); $i++)
          {
               if(!preg_match("/^(10|172\.16|192\.168)\./i", $ips[$i]))
               {
                    if(version_compare(phpversion(), "5.0.0", ">="))
                    {
                         if(ip2long($ips[$i]) != false)
                         {
                              $ip = $ips[$i];
                              break;
                         }
                    }
                    else
                    {
                         if(ip2long($ips[$i]) != - 1)
                         {
                              $ip = $ips[$i];
                              break;
                         }
                    }
               }
          }
     }
     return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}  

get_real_ip();

//Pour faire un sniffer de visite ...
//fonction mail activée sur le serveur
//exemple si on rajoute :
$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
$monmail="TONMAIL@fTONFOURNISSEUR.xx"; //mettre votre email , à personnaliser
$sujet="Visite de la page ".$url;
$message="Un internaute a visité la page ".$url." son IP est ".get_real_ip();
$from = "someonelse@example.com";//email du site
$headers = "From: $from";
//petit test
if(!@mail($monmail,$sujet,$message,$headers)){exit('<h3 align="center">fonction mail inactive sur le serveur ou prob script ... !</h3>');}

?>

Conclusion :


//Pour faire un sniffer de visite ...
//fonction mail activée sur le serveur
//exemple si on rajoute :
$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$monmail="TONMAIL@fTONFOURNISSEUR.xx"; //mettre votre email , à personnaliser
$sujet="Visite de la page ".$url;
$message="Un internaute a visité la page ".$url." son IP est ".get_real_ip();
$from = "someonelse@example.com";//email du site
$headers = "From: $from";
//petit test

if(!@mail($monmail,$sujet,$message,$headers)){exit('<h3 align="center">fonction mail inactive sur le serveur ou prob script ... !</h3>');}

CE CODE DOIT ÊTRE MIS EN DEBUT DE PAGE
testé sur free et ovh ok ...

autre exemple bloquer un indésirable ...

$ip=get_real_ip();
$blocked = "xxx.xxx.xxx.xxx"; // votre choix
if (ereg($blocked,$ip))
{
echo "Vous avez été bloqué !";
exit();
}

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.