PHP准确取得服务器IP地址的方法

yipeiwu_com6年前服务器

本文实例讲述了PHP准确取得服务器IP地址的方法。分享给大家供大家参考。具体分析如下:

在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'] : '');

希望本文所述对大家的php程序设计有所帮助。

相关文章

python搭建简易服务器分析与实现

需求分析: 省油宝用户数 已经破了6000,原有的静态报表 已经变得臃肿不堪, 每次打开都要缓上半天,甚至浏览器直接挂掉 采用python搭建一个最最简易的 web 服务 请求一个nic...

Python实现根据指定端口探测服务器/模块部署的方法

本文实例讲述了Python实现根据指定端口探测服务器/模块部署的方法,非常具有实用价值。分享给大家供大家参考借鉴。 有些时候,在维护过程中,服务器数量非常多。应用模块部署在不同服务器上。...

Python查看多台服务器进程的脚本分享

最近做自己开发用相关服务的一个checklist,就写了这个脚本,用来在跳板机去检查各个服务器上面的相关服务是否正常 使用expect登录每个机器(因为安全问题,不能直接使用ssh信任)...

python和shell监控linux服务器的详细代码

本文实例为大家分享了python和shell监控linux服务器的具体代码,供大家参考,具体内容如下 1、 shell监控负载 监控原理:使用uptime来获取负载的信息,然后通过字符...

php上传图片客户端和服务器端实现方法

本文实例讲述了php上传图片客户端和服务器端实现方法。分享给大家供大家参考。具体如下: 前台表单代码 <form name="form1" method="post" acti...