hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - PHP教程 - 正文 请牢记本站网址www.sosophp.cn

php没法猎取实在ip【php教程】

2019-12-01PHP教程搜搜PHP网43°c
A+ A-

一、猎取用户实在IP地点

 public static function getClientIp()
 {
 if (getenv('HTTP_CLIENT_IP')) {
  $ip = getenv('HTTP_CLIENT_IP');
 }
 if (getenv('HTTP_X_REAL_IP')) {
  $ip = getenv('HTTP_X_REAL_IP');
 } elseif (getenv('HTTP_X_FORWARDED_FOR')) {
  $ip = getenv('HTTP_X_FORWARDED_FOR');
  $ips = explode(',', $ip);
  $ip = $ips[0];
 } elseif (getenv('REMOTE_ADDR')) {
  $ip = getenv('REMOTE_ADDR');
 } else {
  $ip = '0.0.0.0';
 }

 return $ip;
 }

注重:

$_SERVER和getenv的区分,getenv不支持IIS的isapi体式格局运转的php。getenv(“REMOTE_ADDR”)函数在 apache下能一般猎取ip地点,而在iis中没有作用,而$_SERVER['REMOTE_ADDR']函数,既可在apache中胜利猎取访客的ip地点,在iis下也一样有用。

二、关于REMOTE_ADDR

这个变量猎取到的是《直接泉源》的 IP 地点,所谓《直接泉源》指的是直接要求该地点的客户端 IP 。这个 IP 在单服务器的状况下,很正确的是客户端 IP ,没法捏造。固然并非一切的顺序都一定是单服务器,比方在采纳负载平衡的状况(比方采纳 haproxy 或许 nginx 举行负载平衡),这个IP就是转发机械的IP,由于历程是客户端->负载平衡->服务端。是由负载平衡直接接见的服务端而不是客户端。

三、关于 HTTP_X_FORWARDED_FOR 和 HTTP_CLIENT_IP

在负载平衡的状况下直接运用 REMOTE_ADDR 是没法猎取客户端 IP 的,这就是一个题目,必需处理。于是就衍生出了负载平衡端将客户端 IP 加入到 HEAD 中发送给服务端,让服务端能够猎取到客户端的实在 IP 。固然也就产生了列位所说的捏造,毕竟 HEAD 除了协定里牢固的那几个数据,其他数据都是可自定义的。

引荐教程:PHP视频教程

以上就是php没法猎取实在ip的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
php没法猎取实在ip【php教程】

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章