Приветсвую форумчане!
До ООП видимо не дорос ещё, объясните код на процедурном PHP.
// Получаем IP адреса
$ip = ip2long($_SERVER['REMOTE_ADDR']) or die('Invalid IP');
self::$ip = sprintf("%u", $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;
}
}
}
// Получаем UserAgent
if (isset($_SERVER["HTTP_X_OPERAMINI_PHONE_UA"]) && strlen(trim($_SERVER['HTTP_X_OPERAMINI_PHONE_UA'])) > 5) {
self::$user_agent = 'Opera Mini: ' . htmlspecialchars(substr(trim($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']), 0, 150));
} elseif (isset($_SERVER['HTTP_USER_AGENT'])) {
self::$user_agent = htmlspecialchars(substr(trim($_SERVER['HTTP_USER_AGENT']), 0, 150));
} else {
self::$user_agent = 'Not Recognised';
}