$ip=$_SERVER['REMOTE_ADDR']
Если мы хотим получить все, что нам может дать серверное окружение ( X-Forwarded-For, Via и прочих ), то возьмем и напишем простой код, который в цикле перебирает массив $_SERVER, и регулярным выражением выбирает все заголовки, в которых встречается подхдящая под шаблон IP адреса строка. Если встретилась, то весь заголовок - с именем и всем содержимым - добавляем в строку.
<?php
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:
<?php
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-2012 by KDG