PHP获取客户端 真实IP地址多种方法
<?php //经过复杂的判断与算是的获取IP地址函数 function getIP() { if (getenv(HTTP_CLIENT_IP)) { $ip = getenv(HTTP_CLIENT_IP); } elseif (getenv(HTTP_X_FORWARDED_FOR)) { $ip = getenv(HTTP_X_FORWARDED_FOR); } elseif (getenv(HTTP_X_FORWARDED)) { $ip = getenv(HTTP_X_FORWARDED); } elseif (getenv(HTTP_FORWARDED_FOR)) { $ip = getenv(HTTP_FORWARDED_FOR); } elseif (getenv(HTTP_FORWARDED)) { $ip = getenv(HTTP_FORWARDED); } else { $ip = $_SERVER[REMOTE_ADDR]; } return $ip; } echo '<br>1---'.getIP(); //最简单获取ip地址代码一句实例 $reIP=$_SERVER["REMOTE_ADDR"]; echo '<br>2---'.$reIP; // //php教程获取ip的算法 if(getenv(HTTP_CLIENT_IP)) { $onlineip = getenv(HTTP_CLIENT_IP); } elseif(getenv(HTTP_X_FORWARDED_FOR)) { $onlineip = getenv(HTTP_X_FORWARDED_FOR); } elseif(getenv(REMOTE_ADDR)) { $onlineip = getenv(REMOTE_ADDR); } else { $onlineip = $HTTP_SERVER_VARS[REMOTE_ADDR]; } echo '<br>3---'.$onlineip; //可以分出内网与外网站ip地址获取程序 function getip_out(){ $ip=false; if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $ip = $_SERVER["HTTP_CLIENT_IP"]; } if (!empty($_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]); } echo '<br>4---'.getip_out(); //php获取ip的算法,用了?号表达式来处理 $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"]; echo '<br>5---'.$user_IP; ?>
本文转自cococo点点博客园博客,原文链接:http://www.cnblogs.com/coder2012/archive/2013/03/24/2978504.html,如需转载请自行联系原作者