在php中,我们一般通过$_SERVER['HTTP_HOST']来活得URL中网站的域名或者ip地址。

php手册中的解释如下:
“HTTP_HOST”
当前请求的 Host: 头信息的内容。

一般来说,这样子不会遇到什么问题,在一些常见的php框架中,如PFC3和FLEA也是基于该预定义变量。

然而最近在做的一个项目,程序移交到客户手里测试时,竟然发现程序的跳转总是会出错。

最后找出原因:$_SERVER['HTTP_HOST']在客户的环境里,取得的值总是程序所在的服务器在其局域网内的ip值。

究其原因,是因为,客户的公司通过一台服务器连接至因特网,而我们的程序所在的服务器,是通过域名映射出来的,也就是中间有个“代理”的过程。

因此$_SERVER['HTTP_HOST']在这样的环境里,取得的值总是程序所在的服务器在其局域网内的ip值。

最后查了不少资料,在symfony框架里面,找到替代的实现方法:

$host = $_SERVER['HTTP_HOST'];

替换成:

$host = isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '');

转载于:https://www.cnblogs.com/zcy_soft/archive/2011/09/17/2179771.html

PHP 如何准确取得服务器地址IP[非代理]相关推荐

  1. 我的世界正版端游服务器ip地址,我的世界幻想堡垒服务器地址ip(我的世界1.14.4 版本)...

    我的世界幻想堡垒服务器是一个有爱和谐的大型百人生存服务器,支持最新的我的世界1.14.4游戏版本,多达百人在线,同时我的世界幻想堡垒服务器拥有多种特色游戏功能,末日地堡.百万富翁,复古与新玩法在这里完 ...

  2. 打印机服务器ip修改,怎样改打印机服务器的ip地址

    怎样改打印机服务器的ip地址 内容精选 换一换 一.Linux下常用命令:文件与目录操作basename:从文件名中去掉路径和扩展名cd:切换当前工作目录到指定目录chgrp:改变文件所属组chmod ...

  3. Java里面获取当前服务器的IP地址

    java中获取当前服务器地址主要使用到InetAddress这个类 public static void main(String[] args) {try {//用 getLocalHost() 方法 ...

  4. 打印机服务器ip修改,怎么样更改打印机服务器的ip地址

    怎么样更改打印机服务器的ip地址 内容精选 换一换 实例常用端口如表1所示.您可以通过配置安全组规则放通实例对应的端口,详情请参见配置安全组规则.无法访问公有云某些端口问题现象:访问公有云特定端口,在 ...

  5. ping服务器地址加时间显示,如何对IP地址进行Ping测试

    Ping命令能测试您和另一个网络节点之间的连接速度.您能使用该命令了解连接的强度.距离和可用性,不管是在您自己的网络中还是互联网.参照以下指南了解如何在各种系统中使用Ping命令. 方法1在Windo ...

  6. 使用花生壳远程连接服务器,服务器的IP地址改变时,重连服务器的方法

    这个事情是我经历过的,想分享给大家,同时也做个自己的记录. 不知道审核为什么非说这篇是个广告???!!!审核的人一定没用过花生壳这个软件吧!!我又没有引导大家进行消费,只是告诉大家在出现这个问题的时候 ...

  7. 拼网站服务器地址,怎么拼网页服务器ip地址

    怎么拼网页服务器ip地址 内容精选 换一换 本章节指导用户获取云服务器的IP地址等网卡信息.进入弹性云服务器页面.进入云服务器详情页面.进入网卡详情页面.网卡详情页面进入虚拟IP详情页,即可根据云服务 ...

  8. 服务器打印的信息怎么看到,怎么查看打印机服务器的ip地址

    怎么查看打印机服务器的ip地址 内容精选 换一换 3.2.3 Windows系统远程口令猜解Windows系统提供了两种远程访问的方式,一种是通过IPC(Inter-Process Communica ...

  9. 北京dns服务器ip地址_什么是DNS? 域名系统,DNS服务器和IP地址概念介绍

    北京dns服务器ip地址 介绍 (Introduction) By the end of this article, you should have a better understanding of ...

最新文章

  1. java第三章_Java 第三章
  2. CAPSNET:具有自我注意路由的胶囊网络
  3. Xmanager7如何通过SSH连接远程服务器
  4. The Text Splitting (将字符串分成若干份,每份长度为p或q)
  5. php控制 css样式,div css样式控制案例
  6. java实现rtsp转rtmp
  7. 数据结构与算法——栈、队列、堆汇总整理
  8. arduino lora通讯_ESP8266 LoRa网关第一步:SPI总线
  9. 数字图像处理-绪论 (上)
  10. $(...).nicescroll is not a function报错分析
  11. MSM8937系统启动流程
  12. 深入浅出 SSL/TLS 协议
  13. 原生JS 和 jQuery 通过url传递 和 接收 自定义参数
  14. nginx:重启linux服务之后保持nginx重启,nginx后台自启动
  15. 计算机网络的OSI 7层模型
  16. C++20中的协程(Coroutine)
  17. WDCP是什么 关于WDCP的详细介绍
  18. Java小农养成记第十四天
  19. 深度 | 人脸识别在安防领域的路还有很长时间要走
  20. 制作kali live usb启动盘-win10下

热门文章

  1. LeetCode每日一题 844. 比较含退格的字符串
  2. Windows下安装部署DBeaver连接clickhouse
  3. skimage.io.imread(), Image.open() 以及 cv2.imread()的区别
  4. having and group by
  5. [C/C++面试题]-错题笔记与解析
  6. php 降低图像大小,在PHP中调整图像大小
  7. aix系统服务器限制ftp访问,AIX 限制ftp用户只能访问其主目录
  8. 计算机职称在线考试报名系统,2020年计算机职称考试网上如何报名
  9. Excel中vlookup函数的使用方法
  10. 两个具有相同的名称在CLASSPATH中的类