A-A+
可以获得访客IP地址的函数
在网站应用中,我们经常会用到读取访客IP的功能,下面是本博找到的几个可以获得访客IP地址的函数,便于进行访客统计,希望大家仔细研读,学习其中精华及原理,只需要一个函数即可获取访问的IP地址,在需要的地方将其包含进来,而在使用时直接echo出来即可,是不是很简单呢,快给自己的网站加一个可以获得访客 ip 地址的函数功能吧。
<?php //获取真实IP //函数一 function getip() { if (isset($_SERVER)) { if (isset($_SERVER[HTTP_X_FORWARDED_FOR])) { $realip = $_SERVER[HTTP_X_FORWARDED_FOR]; } elseif (isset($_SERVER[HTTP_CLIENT_IP])) { $realip = $_SERVER[HTTP_CLIENT_IP]; } else { $realip = $_SERVER[REMOTE_ADDR]; } } else { if (getenv("HTTP_X_FORWARDED_FOR")) { $realip = getenv( "HTTP_X_FORWARDED_FOR"); } elseif (getenv("HTTP_CLIENT_IP")) { $realip = getenv("HTTP_CLIENT_IP"); } else { $realip = getenv("REMOTE_ADDR"); } } return $realip; } //函数二: function get_real_ip(){ $ip=false; if(!emptyempty($_SERVER["HTTP_CLIENT_IP"])){ $ip = $_SERVER["HTTP_CLIENT_IP"]; } if (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']); if ($ip) { array_unshift($ips, $ip); $ip = FALSE; } for ($i = 0; $i < count($ips); $i++) { if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])) { $ip = $ips[$i]; break; } } } return ($ip ? $ip : $_SERVER['REMOTE_ADDR']); } //函数三: function strFunIP() { if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]) $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]) $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"]; elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]) $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; elseif (getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); elseif (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP"); elseif (getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR"); else $ip = "Unknown"; return $ip; } ?>
<?php //使用方法: echo getip(); //函数一使用 echo "<br>"; echo get_real_ip(); //函数二使用 echo "<br>"; echo strFunIP(); //函数三使用 ?>