YII里怎么得到当前客户端的IP? [ 新手入门 ]
怎么我用
$_SERVER["REMOTE_ADDR"]
得到的是127.0.0.1? YII里怎么得到当前客户端的真实IP?
共 7 条回复
-
/* * 此函数不能再iis下工作,但是效率比较高 * @return string user IP address */ public function getUserHostAddressNoIIS() { switch (true) { case isset($_SERVER["HTTP_X_FORWARDED_FOR"]): $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; break; case isset($_SERVER["HTTP_CLIENT_IP"]): $ip = $_SERVER["HTTP_CLIENT_IP"]; break; default: $ip = $_SERVER["REMOTE_ADDR"] ? $_SERVER["REMOTE_ADDR"] : '127.0.0.1'; } if (strpos($ip, ', ') > 0) { $ips = explode(', ', $ip); $ip = $ips[0]; } return $ip; } /** * 此函数在apache和iis下通用,但速度比getUserHostAddressNoIIS慢 * @return string user IP address */ public function getUserHostAddress() { switch(true){ case ($ip=getenv("HTTP_X_FORWARDED_FOR")): break; case ($ip=getenv("HTTP_CLIENT_IP")): break; default: $ip=getenv("REMOTE_ADDR")?getenv("REMOTE_ADDR"):'127.0.0.1'; } if (strpos($ip, ', ')>0) { $ips = explode(', ', $ip); $ip = $ips[0]; } return $ip; }
-
qingfengxiaoxue 回复于 2015-07-21 09:26 举报
我用的是yii2:
$ip = Yii::$app->request->userIP;
但是我也是本地测试的,输出为:"192.168.1.40",我本地局域网地址。
我想问的是,如果不是本地,那输出的就是“ip168”上面查询的ip?
如果我想测试,现在没办法嘛?jianghaifm 觉得很赞
北京过客 山东
注册时间:2011-03-14
最后登录:1970-01-01
在线时长:0小时0分
最后登录:1970-01-01
在线时长:0小时0分
- 粉丝3
- 金钱910
- 威望0
- 积分910