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
加强版phplib的DB类
Mar 31 PHP
php下关于Cannot use a scalar value as an array的解决办法
Aug 08 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
php异常处理使用示例
Feb 25 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
Mar 18 PHP
PHP aes (ecb)解密后乱码问题
Jun 22 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
一段实用的php验证码函数
May 19 PHP
详解Yii2 rules 的验证规则
Dec 02 PHP
PHP 实现从数据库导出到.csv文件方法
Jul 06 PHP
PHP Redis扩展无法加载的问题解决方法
Aug 22 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
PHP Squid中可缓存的动态网页设计
2008/09/17 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
2016/08/21 PHP
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
2014/10/31 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
Bootstrap每天必学之按钮(一)
2015/11/24 Javascript
AngularJS仿苹果滑屏删除控件
2016/01/18 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
JavaScript输出所选择起始与结束日期的方法
2017/07/12 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
Python itertools模块详解
2015/05/09 Python
Python程序退出方式小结
2017/12/09 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
django rest framework serializers序列化实例
2020/05/13 Python
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
如何进行Linux分区优化
2016/09/13 面试题
一月红领巾广播稿
2014/02/11 职场文书
情况说明书格式范文
2014/05/06 职场文书
培训师岗位职责
2015/02/14 职场文书
2015年出纳工作总结与计划
2015/05/18 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书