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


Posted in PHP onJune 02, 2015

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
十天学会php之第九天
Oct 09 PHP
透析PHP的配置文件php.ini
Oct 09 PHP
php 取得瑞年与平年的天数的代码
Aug 10 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
Jun 17 PHP
php列出一个目录下的所有文件的代码
Oct 09 PHP
php实现在线生成条形码示例分享(条形码生成器)
Dec 30 PHP
MongoDB在PHP中的常用操作小结
Feb 20 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 PHP
PHP实现的mysql读写分离操作示例
May 22 PHP
Laravel框架表单验证操作实例分析
Sep 30 PHP
PHP中isset与array_key_exists的区别实例分析
Jun 02 #PHP
php使用ob_flush不能每隔一秒输出原理分析
Jun 02 #PHP
php获取指定范围内最接近数的方法
Jun 02 #PHP
PHP使用递归方式列出当前目录下所有文件的方法
Jun 02 #PHP
php使用socket post数据到其它web服务器的方法
Jun 02 #PHP
php自动给网址加上链接的方法
Jun 02 #PHP
php将字符串随机分割成不同长度数组的方法
Jun 01 #PHP
You might like
smarty模板引擎中内建函数if、elseif和else的使用方法
2015/01/22 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
Javascript 二维数组
2009/11/26 Javascript
JavaScript 原型学习总结
2010/10/29 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
angularjs中的$eval方法详解
2017/04/24 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
Node.js自定义实现文件路由功能
2017/09/22 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
2017/12/24 Javascript
Openlayers显示瓦片网格信息的方法
2020/09/28 Javascript
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
python实现class对象转换成json/字典的方法
2016/03/11 Python
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
Python字符串处理实现单词反转
2017/06/14 Python
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
基于python指定包的安装路径方法
2018/10/27 Python
python爬虫中的url下载器用法详解
2020/11/30 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
哪些情况下不应该使用索引
2015/07/20 面试题
delegate与普通函数的区别
2014/01/22 面试题
就业自荐书
2013/12/05 职场文书
社区消防工作实施方案
2014/03/21 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
父亲去世追悼词
2015/06/23 职场文书
导游词之清晏园
2019/11/22 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript