Swank, При инициализации свойства, метода конструктор не вызывается.
class client {
public static $ip;
public static $ip_via_proxy;
public static $agent;
public static $is_mobile;
public static $referrer;
public static function init() {
// Получаем UserAgent
if (isset($_SERVER["HTTP_X_OPERAMINI_PHONE_UA"]) && strlen(trim($_SERVER['HTTP_X_OPERAMINI_PHONE_UA'])) > 5) {
self::$agent = 'Opera Mini:' . htmlspecialchars(mb_substr(trim($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']), 0, 150));
} elseif(isset($_SERVER['HTTP_US ER_AGENT'])) {
self::$agent = htmlspecialchars(mb_substr(trim($_SERVER['HTTP_USER_AGENT']), 0, 150));
} else {
self::$agent = 'Нет записи';
}
// Получаем IP адреса
$ip = ip2long($_SERVER['REMOTE_ADDR']) or die('У вас проблемы с ip адресом');
self::$ip = sprintf("%u", $ip);
// Ip за проксы
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $vars)) {
foreach ($vars[0] AS $var) {
$ip_via_proxy = ip2long($var);
if ($ip_via_proxy && $ip_via_proxy != $ip && !preg_match('#^(10|172\.16|192\.168)\.#', $var)) {
self::$ip_via_proxy = sprintf("%u", $ip_via_proxy);
break;
}
}
}
}
}Где нибудь в начале скрипта
client::init();
И потом в любом месте client::$ip;
А вообще правильней разбить всё на методы