PHP $_SERVER变量


在[GPC][1]开启的情况下$_SERVER是不受GPC影响的。

  1. $_SERVER[‘SERVER_NAME‘] 当前运行脚本所在的服务器的主机名

    $_SERVER['SERVER_NAME'] 在apache2 下
    如果你没有设置ServerName或者没有把UseCanonicalName 设置为 On的话,
    这个值就会是客户端提供的hostname ,对于apache来说,它只取第一个host,
    但对于php来说,不管多少个,它全要了。
  2. $_SERVER[‘HTTP_X_FORWARDED_FOR‘] 浏览当前页面的用户计算机的网关 ^1

    • 没有使用代理服务 器的情况:
      REMOTE_ADDR = 您的 IP
      HTTP_VIA = 没数值或不显示
      HTTP_X_FORWARDED_FOR = 没数值或不显示

    • 使用透明代理服务器的情 况:Transparent Proxies
      REMOTE_ADDR = 最后一个代理服务器 IP
      HTTP_VIA = 代理服务器 IP
      HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
      这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。

    • 使用普通匿名代理服务器的情况:Anonymous Proxies
      REMOTE_ADDR = 最后一个代理服务器 IP
      HTTP_VIA = 代理服务器 IP
      HTTP_X_FORWARDED_FOR = 代理服务器 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
      隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。

    • 使用欺骗性代理服务器的情况:Distorting Proxies
      REMOTE_ADDR = 代理服务器 IP
      HTTP_VIA = 代理服务器 IP
      HTTP_X_FORWARDED_FOR = 随机的 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
      告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。

    • 使用高匿名代理服务器的情况:High Anonymity Proxies (Elite proxies)
      REMOTE_ADDR = 代理服务器 IP
      HTTP_VIA = 没数值或不显示
      HTTP_X_FORWARDED_FOR = 没数值或不显示。
      完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象。

  3. $_SERVER[‘PHP_SELF’] 当前执行脚本的文件名

  4. $_SERVER[‘HTTP_USER_AGENT’] 返回客户端ua


参考文档


Author: Itaken
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Itaken !
  TOC目录