[ Index ]
 

Code source de LifeType 1.2.4

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/class/net/ -> client.class.php (source)

   1  <?php
   2  
   3  
   4      
   5  
   6      /**
   7       * \ingroup Net
   8       *
   9       * Basic class that will return the real IP address of a request. In the future this class
  10       * will be improved to return other things such as the user agent, content type, etc.
  11       */
  12      class Client  
  13      {
  14  
  15      /**
  16       * Gets the "true" IP address of the current user
  17       *
  18       * @return  string   the ip of the user
  19       */
  20      function getIp()
  21      {
  22          global $REMOTE_ADDR;
  23          global $HTTP_X_FORWARDED_FOR, $HTTP_X_FORWARDED, $HTTP_FORWARDED_FOR, $HTTP_FORWARDED;
  24          global $HTTP_VIA, $HTTP_X_COMING_FROM, $HTTP_COMING_FROM;
  25          global $HTTP_SERVER_VARS, $HTTP_ENV_VARS;
  26  
  27          // Get some server/environment variables values
  28          if (empty($REMOTE_ADDR)) {
  29              if (!empty($_SERVER) && isset($_SERVER['REMOTE_ADDR'])) {
  30                  $REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];
  31              }
  32              else if (!empty($_ENV) && isset($_ENV['REMOTE_ADDR'])) {
  33                  $REMOTE_ADDR = $_ENV['REMOTE_ADDR'];
  34              }
  35              else if (!empty($HTTP_SERVER_VARS) && isset($HTTP_SERVER_VARS['REMOTE_ADDR'])) {
  36                  $REMOTE_ADDR = $HTTP_SERVER_VARS['REMOTE_ADDR'];
  37              }
  38              else if (!empty($HTTP_ENV_VARS) && isset($HTTP_ENV_VARS['REMOTE_ADDR'])) {
  39                  $REMOTE_ADDR = $HTTP_ENV_VARS['REMOTE_ADDR'];
  40              }
  41              else if (@getenv('REMOTE_ADDR')) {
  42                  $REMOTE_ADDR = getenv('REMOTE_ADDR');
  43              }
  44          } // end if
  45          if (empty($HTTP_X_FORWARDED_FOR)) {
  46              if (!empty($_SERVER) && isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  47                  $HTTP_X_FORWARDED_FOR = $_SERVER['HTTP_X_FORWARDED_FOR'];
  48              }
  49              else if (!empty($_ENV) && isset($_ENV['HTTP_X_FORWARDED_FOR'])) {
  50                  $HTTP_X_FORWARDED_FOR = $_ENV['HTTP_X_FORWARDED_FOR'];
  51              }
  52              else if (!empty($HTTP_SERVER_VARS) && isset($HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'])) {
  53                  $HTTP_X_FORWARDED_FOR = $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'];
  54              }
  55              else if (!empty($HTTP_ENV_VARS) && isset($HTTP_ENV_VARS['HTTP_X_FORWARDED_FOR'])) {
  56                  $HTTP_X_FORWARDED_FOR = $HTTP_ENV_VARS['HTTP_X_FORWARDED_FOR'];
  57              }
  58              else if (@getenv('HTTP_X_FORWARDED_FOR')) {
  59                  $HTTP_X_FORWARDED_FOR = getenv('HTTP_X_FORWARDED_FOR');
  60              }
  61          } // end if
  62          if (empty($HTTP_X_FORWARDED)) {
  63              if (!empty($_SERVER) && isset($_SERVER['HTTP_X_FORWARDED'])) {
  64                  $HTTP_X_FORWARDED = $_SERVER['HTTP_X_FORWARDED'];
  65              }
  66              else if (!empty($_ENV) && isset($_ENV['HTTP_X_FORWARDED'])) {
  67                  $HTTP_X_FORWARDED = $_ENV['HTTP_X_FORWARDED'];
  68              }
  69              else if (!empty($HTTP_SERVER_VARS) && isset($HTTP_SERVER_VARS['HTTP_X_FORWARDED'])) {
  70                  $HTTP_X_FORWARDED = $HTTP_SERVER_VARS['HTTP_X_FORWARDED'];
  71              }
  72              else if (!empty($HTTP_ENV_VARS) && isset($HTTP_ENV_VARS['HTTP_X_FORWARDED'])) {
  73                  $HTTP_X_FORWARDED = $HTTP_ENV_VARS['HTTP_X_FORWARDED'];
  74              }
  75              else if (@getenv('HTTP_X_FORWARDED')) {
  76                  $HTTP_X_FORWARDED = getenv('HTTP_X_FORWARDED');
  77              }
  78          } // end if
  79          if (empty($HTTP_FORWARDED_FOR)) {
  80              if (!empty($_SERVER) && isset($_SERVER['HTTP_FORWARDED_FOR'])) {
  81                  $HTTP_FORWARDED_FOR = $_SERVER['HTTP_FORWARDED_FOR'];
  82              }
  83              else if (!empty($_ENV) && isset($_ENV['HTTP_FORWARDED_FOR'])) {
  84                  $HTTP_FORWARDED_FOR = $_ENV['HTTP_FORWARDED_FOR'];
  85              }
  86              else if (!empty($HTTP_SERVER_VARS) && isset($HTTP_SERVER_VARS['HTTP_FORWARDED_FOR'])) {
  87                  $HTTP_FORWARDED_FOR = $HTTP_SERVER_VARS['HTTP_FORWARDED_FOR'];
  88              }
  89              else if (!empty($HTTP_ENV_VARS) && isset($HTTP_ENV_VARS['HTTP_FORWARDED_FOR'])) {
  90                  $HTTP_FORWARDED_FOR = $HTTP_ENV_VARS['HTTP_FORWARDED_FOR'];
  91              }
  92              else if (@getenv('HTTP_FORWARDED_FOR')) {
  93                  $HTTP_FORWARDED_FOR = getenv('HTTP_FORWARDED_FOR');
  94              }
  95          } // end if
  96          if (empty($HTTP_FORWARDED)) {
  97              if (!empty($_SERVER) && isset($_SERVER['HTTP_FORWARDED'])) {
  98                  $HTTP_FORWARDED = $_SERVER['HTTP_FORWARDED'];
  99              }
 100              else if (!empty($_ENV) && isset($_ENV['HTTP_FORWARDED'])) {
 101                  $HTTP_FORWARDED = $_ENV['HTTP_FORWARDED'];
 102              }
 103              else if (!empty($HTTP_SERVER_VARS) && isset($HTTP_SERVER_VARS['HTTP_FORWARDED'])) {
 104                  $HTTP_FORWARDED = $HTTP_SERVER_VARS['HTTP_FORWARDED'];
 105              }
 106              else if (!empty($HTTP_ENV_VARS) && isset($HTTP_ENV_VARS['HTTP_FORWARDED'])) {
 107                  $HTTP_FORWARDED = $HTTP_ENV_VARS['HTTP_FORWARDED'];
 108              }
 109              else if (@getenv('HTTP_FORWARDED')) {
 110                  $HTTP_FORWARDED = getenv('HTTP_FORWARDED');
 111              }
 112          } // end if
 113          if (empty($HTTP_VIA)) {
 114              if (!empty($_SERVER) && isset($_SERVER['HTTP_VIA'])) {
 115                  $HTTP_VIA = $_SERVER['HTTP_VIA'];
 116              }
 117              else if (!empty($_ENV) && isset($_ENV['HTTP_VIA'])) {
 118                  $HTTP_VIA = $_ENV['HTTP_VIA'];
 119              }
 120              else if (!empty($HTTP_SERVER_VARS) && isset($HTTP_SERVER_VARS['HTTP_VIA'])) {
 121                  $HTTP_VIA = $HTTP_SERVER_VARS['HTTP_VIA'];
 122              }
 123              else if (!empty($HTTP_ENV_VARS) && isset($HTTP_ENV_VARS['HTTP_VIA'])) {
 124                  $HTTP_VIA = $HTTP_ENV_VARS['HTTP_VIA'];
 125              }
 126              else if (@getenv('HTTP_VIA')) {
 127                  $HTTP_VIA = getenv('HTTP_VIA');
 128              }
 129          } // end if
 130          if (empty($HTTP_X_COMING_FROM)) {
 131              if (!empty($_SERVER) && isset($_SERVER['HTTP_X_COMING_FROM'])) {
 132                  $HTTP_X_COMING_FROM = $_SERVER['HTTP_X_COMING_FROM'];
 133              }
 134              else if (!empty($_ENV) && isset($_ENV['HTTP_X_COMING_FROM'])) {
 135                  $HTTP_X_COMING_FROM = $_ENV['HTTP_X_COMING_FROM'];
 136              }
 137              else if (!empty($HTTP_SERVER_VARS) && isset($HTTP_SERVER_VARS['HTTP_X_COMING_FROM'])) {
 138                  $HTTP_X_COMING_FROM = $HTTP_SERVER_VARS['HTTP_X_COMING_FROM'];
 139              }
 140              else if (!empty($HTTP_ENV_VARS) && isset($HTTP_ENV_VARS['HTTP_X_COMING_FROM'])) {
 141                  $HTTP_X_COMING_FROM = $HTTP_ENV_VARS['HTTP_X_COMING_FROM'];
 142              }
 143              else if (@getenv('HTTP_X_COMING_FROM')) {
 144                  $HTTP_X_COMING_FROM = getenv('HTTP_X_COMING_FROM');
 145              }
 146          } // end if
 147          if (empty($HTTP_COMING_FROM)) {
 148              if (!empty($_SERVER) && isset($_SERVER['HTTP_COMING_FROM'])) {
 149                  $HTTP_COMING_FROM = $_SERVER['HTTP_COMING_FROM'];
 150              }
 151              else if (!empty($_ENV) && isset($_ENV['HTTP_COMING_FROM'])) {
 152                  $HTTP_COMING_FROM = $_ENV['HTTP_COMING_FROM'];
 153              }
 154              else if (!empty($HTTP_COMING_FROM) && isset($HTTP_SERVER_VARS['HTTP_COMING_FROM'])) {
 155                  $HTTP_COMING_FROM = $HTTP_SERVER_VARS['HTTP_COMING_FROM'];
 156              }
 157              else if (!empty($HTTP_ENV_VARS) && isset($HTTP_ENV_VARS['HTTP_COMING_FROM'])) {
 158                  $HTTP_COMING_FROM = $HTTP_ENV_VARS['HTTP_COMING_FROM'];
 159              }
 160              else if (@getenv('HTTP_COMING_FROM')) {
 161                  $HTTP_COMING_FROM = getenv('HTTP_COMING_FROM');
 162              }
 163          } // end if
 164  
 165          // Gets the proxy ip sent by the user
 166          $proxy_ip     = '';
 167          if (!empty($HTTP_X_FORWARDED_FOR)) {
 168              $proxy_ip = $HTTP_X_FORWARDED_FOR;
 169          } else if (!empty($HTTP_X_FORWARDED)) {
 170              $proxy_ip = $HTTP_X_FORWARDED;
 171          } else if (!empty($HTTP_FORWARDED_FOR)) {
 172              $proxy_ip = $HTTP_FORWARDED_FOR;
 173          } else if (!empty($HTTP_FORWARDED)) {
 174              $proxy_ip = $HTTP_FORWARDED;
 175          } else if (!empty($HTTP_VIA)) {
 176              $proxy_ip = $HTTP_VIA;
 177          } else if (!empty($HTTP_X_COMING_FROM)) {
 178              $proxy_ip = $HTTP_X_COMING_FROM;
 179          } else if (!empty($HTTP_COMING_FROM)) {
 180              $proxy_ip = $HTTP_COMING_FROM;
 181          } // end if... else if...
 182  
 183          // Returns the true IP if it has been found, else FALSE
 184          if(!empty($REMOTE_ADDR))
 185              return $REMOTE_ADDR;
 186          else
 187              return FALSE;
 188  
 189              // NOTE: the proxy addresses can be faked - shouldn't be depended on
 190              // for security - perhaps plugins like karma, et al. might want to use
 191              // this value, but all ip-based-blocking need the REMOTE_ADDR
 192  /*        
 193          if (empty($proxy_ip)) {
 194              // True IP without proxy
 195              return $direct_ip;
 196          } else {
 197              $is_ip = ereg('^([0-9]{1,3}\.){3,3}[0-9]{1,3}', $proxy_ip, $regs);
 198              if ($is_ip && (count($regs) > 0)) {
 199                  // True IP behind a proxy
 200                  return $regs[0];
 201              } else {
 202                  // Can't define IP: there is a proxy but we don't have
 203                  // information about the true IP
 204                  return FALSE;
 205              }
 206          } // end if... else...
 207  */
 208      } // end of the 'PMA_getIp()' function
 209  
 210      }
 211  ?>


Généré le : Mon Nov 26 21:04:15 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics