当前位置:首页 > CMS教程 > Thinkphp > 列表

thinkphp如何获取客户端IP

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-24 11:17:22 浏览: 评论:0 

这篇文章主要介绍了thinkphp如何正确获取客户端IP,除了使用内置get_client_ip函数,还有没有其他方法?请阅读下文揭晓答案。

thinkphp框架中系统内置了get_client_ip方法用于获取客户端的IP地址,使用示例:

$ip = get_client_ip();

除了thinkphp内置get_client_ip函数外,也可使用下面函数获取客户端IP地址。

$type表示返回类型 0 返回IP地址, 1 返回IPV4地址数字

分享代码如下:

  1. function get_client_ip($type = 0) { 
  2.   $type    = $type ? 1 : 0; 
  3.   static $ip =  NULL; 
  4.   if ($ip !== NULL) return $ip[$type]; 
  5.   if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
  6.     $arr  =  explode(','$_SERVER['HTTP_X_FORWARDED_FOR']); 
  7.     $pos  =  array_search('unknown',$arr); 
  8.     if(false !== $pos) unset($arr[$pos]); 
  9.     $ip   =  trim($arr[0]); 
  10.   }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { 
  11.     $ip   =  $_SERVER['HTTP_CLIENT_IP']; 
  12.   }elseif (isset($_SERVER['REMOTE_ADDR'])) { 
  13.     $ip   =  $_SERVER['REMOTE_ADDR']; 
  14.   } 
  15.   // IP地址合法验证 
  16.   $long = ip2long($ip); 
  17.   $ip  = $long ? array($ip$long) : array('0.0.0.0', 0); 
  18.   return $ip[$type]; 

希望本文对大家深入学习php程序设计有所帮助。

Tags: thinkphp获取客户端IP

分享到: