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实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】

本文实例讲述了Python实现的服务器。分享给大家供大家参考,具体如下: python - 单进程服务器 #coding=utf-8 from socket import * #创建...

php实现从ftp服务器上下载文件树到本地电脑的程序

复制代码 代码如下:/* 用ftp_nlist()函授时,返回的数组值会有两种类型:因服务器不同而异 a:单独的文件名 b:包含目录的文件名。 如果挪用,请注意更改此处。 */ <...

python 从远程服务器下载日志文件的程序

复制代码 代码如下:import osimport sysimport ftplibimport socket #####################################...

wamp服务器访问php非常缓慢的解决过程

wamp这两天明显比以前访问要慢很多,重启了下,刚开始还有效,后来重启也没用,就在网上查了下原因,分享给需要的朋友。 可能原因1、apache  access.log文件过大...

python实现静态服务器

本文实例为大家分享了python静态服务器的具体代码,供大家参考,具体内容如下 #coding:utf-8 import socket import multiprocessing...