thinkphp如何获取客户端IP |
|
thinkphp框架中系统内置了get_client_ip方法用于获取客户端的IP地址,使用示例:
function get_client_ip($type = 0) {
$type = $type ? 1 : 0;
static $ip = NULL;
if ($ip !== NULL) return $ip[$type];
if (isset($_SERVER[HTTP_X_FORWARDED_FOR])) {
$arr = explode(,, $_SERVER[HTTP_X_FORWARDED_FOR]);
$pos = array_search(unknown,$arr);
if(false !== $pos) unset($arr[$pos]);
$ip = trim($arr[0]);
}elseif (isset($_SERVER[HTTP_CLIENT_IP])) {
$ip = $_SERVER[HTTP_CLIENT_IP];
}elseif (isset($_SERVER[REMOTE_ADDR])) {
$ip = $_SERVER[REMOTE_ADDR];
}
// IP地址合法验证
$long = ip2long($ip);
$ip = $long ? array($ip, $long) : array(0.0.0.0, 0);
return $ip[$type];
希望本文对大家深入学习php程序设计有所帮助 。 |