function getip($dots = 4) { $ips = array(); $indices = array('REMOTE_ADDR', 'HTTP_X_FORWARDED_FOR', 'HTTP_CLIENT_IP'); foreach ($indices as $index) { // $_SERVER is sometimes for a windows server which can't handle getenv() $tip = @getenv($index); if (!empty($tip)) { $ips[] = $tip; } if (!empty($_SERVER[$index])) { $ips[] = $_SERVER[$index]; } } $private_ips = array("/^0\\..+\$/", "/^127\\.0\\.0\\..+\$/", "/^192\\.168\\..+\$/", "/^172\\.16\\..+\$/", "/^10..+\$/", "/^224..+\$/", "/^240..+\$/", "/[^\\d\\.]+/"); $ips = array_unique($ips); foreach ($ips as $ip) { $found = false; if (!preg_match("/[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}/", $ip)) { $found = true; } foreach ($private_ips as $pip) { if (preg_match($pip, trim($ip))) { $found = true; } } if ($found == false) { return ext_iptrim(trim($ip), $dots); } } $b = _EnvValToInt('HTTP_USER_AGENT'); $c = _EnvValToInt('HTTP_ACCEPT'); $d = _EnvValToInt('HTTP_ACCEPT_LANGUAGE'); $ip = "0.{$b}.{$c}.{$d}"; return ext_iptrim($ip, $dots); }
function getip($dots = 4) { $ips = array(); $indices = array('REMOTE_ADDR', 'HTTP_X_FORWARDED_FOR', 'HTTP_CLIENT_IP'); foreach ($indices as $index) { // $_SERVER is sometimes for a windows server which can't handle getenv() $tip = @getenv($index); if (!empty($tip)) { $ips[] = $tip; } if (!empty($_SERVER[$index])) { $ips[] = $_SERVER[$index]; } } $ips = array_unique($ips); foreach ($ips as $ip) { $found = !check_ip($ip); if ($found == false) { return ext_iptrim(trim($ip), $dots); } } $b = _EnvValToInt('HTTP_USER_AGENT'); $c = _EnvValToInt('HTTP_ACCEPT'); $d = _EnvValToInt('HTTP_ACCEPT_LANGUAGE'); $ip = "0.{$b}.{$c}.{$d}"; return ext_iptrim($ip, $dots); }
function getip($dots = 4) { $ips = array(); // $_SERVER is sometimes for a windows server which can't handle getenv() if (@getenv("REMOTE_ADDR")) { $ips[] = @getenv("REMOTE_ADDR"); } if (isset($_SERVER["REMOTE_ADDR"])) { $ips[] = $_SERVER["REMOTE_ADDR"]; } if (@getenv("HTTP_X_FORWARDED_FOR")) { $ips[] = getenv("HTTP_X_FORWARDED_FOR"); } if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) { $ips[] = $_SERVER["HTTP_X_FORWARDED_FOR"]; } if (@getenv("HTTP_CLIENT_IP")) { $ips[] = getenv("HTTP_CLIENT_IP"); } if (isset($_SERVER["HTTP_CLIENT_IP"])) { $ips[] = $_SERVER["HTTP_CLIENT_IP"]; } $private_ips = array("/^0\\..+\$/", "/^127\\.0\\.0\\..+\$/", "/^192\\.168\\..+\$/", "/^172\\.16\\..+\$/", "/^10..+\$/", "/^224..+\$/", "/^240..+\$/", "/[^\\d\\.]+/"); $ips = array_unique($ips); foreach ($ips as $ip) { $found = false; foreach ($private_ips as $pip) { if (preg_match($pip, trim($ip)) == 1) { $found = true; } } if ($found == false) { return ext_iptrim(trim($ip), $dots); } } $b = _EnvValToInt('HTTP_USER_AGENT'); $c = _EnvValToInt('HTTP_ACCEPT'); $d = _EnvValToInt('HTTP_ACCEPT_LANGUAGE'); $ip = "0.{$b}.{$c}.{$d}"; return ext_iptrim($ip, $dots); }