AAA Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Получение IP-адреса

Стандртный код получания IP адреса выглядит так:
$ip=$_SERVER['REMOTE_ADDR']

Если мы хотим получить все, что нам может дать серверное окружение ( X-Forwarded-For, Via и прочих ), то возьмем и напишем простой код, который в цикле перебирает массив $_SERVER, и регулярным выражением выбирает все заголовки, в которых встречается подхдящая под шаблон IP адреса строка. Если встретилась, то весь заголовок - с именем и всем содержимым - добавляем в строку.


REMOTE_ADDR: 54.196.89.247

function get_all_ip() {
  $ip_pattern="#(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)#";
  $ret="";
  foreach ($_SERVER as $k => $v) {
    if (substr($k,0,5)=="HTTP_" AND preg_match($ip_pattern,$v)) $ret.=$k.": ".$v."\n";
  }
  return $ret;
}
echo get_all_ip();

Вариант более простого определения ip:

function getRealIpAddr()
{
  if (!empty(@$_SERVER['HTTP_CLIENT_IP']))
    return $_SERVER['HTTP_CLIENT_IP'];
  elseif (!empty(@$_SERVER['HTTP_X_FORWARDED_FOR']))
    return $_SERVER['HTTP_X_FORWARDED_FOR'];
  else
    return@$_SERVER['REMOTE_ADDR'];
}

.

© Copyright 2008- by KDG



Rambler's Top100