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 相关文章推荐
建立动态的WML站点(二)
Oct 09 PHP
vBulletin HACK----关于排版的两个HACK
Oct 09 PHP
PHP小技巧搜集,每个PHPer都来露一手
Jan 02 PHP
什么是MVC,好东西啊
May 03 PHP
JS 网站性能优化笔记
May 24 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
Apr 26 PHP
分享五个PHP7性能优化提升技巧
Dec 07 PHP
thinkphp的dump函数无输出实例代码
Nov 15 PHP
Zend Framework基于Command命令行建立ZF项目的方法
Feb 18 PHP
PHP count()函数讲解
Feb 03 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
Oct 12 PHP
PHP Swoole异步读取、写入文件操作示例
Oct 24 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
使用xampp搭建运行php虚拟主机的详细步骤
2015/10/21 PHP
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
escape函数解决js中ajax传递中文出现乱码问题
2014/10/30 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
JS在一定时间内跳转页面及各种刷新页面的实现方法
2016/05/26 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
js中判断变量类型函数typeof的用法总结
2016/08/09 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
javascript回调函数的概念理解与用法分析
2017/05/27 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
hammer.js实现图片手势放大效果
2017/08/29 Javascript
javascript实现Emrips反质数枚举的示例代码
2017/12/06 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
JavaScript 绘制饼图的示例
2021/02/19 Javascript
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
Python中的filter()函数的用法
2015/04/27 Python
Python实现二叉搜索树
2016/02/03 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
python实现n个数中选出m个数的方法
2018/11/13 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
2019/05/04 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
Pycharm最新激活码2019(推荐)
2019/12/31 Python
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
Joseph官网:英国小众奢侈品牌
2019/05/17 全球购物
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
分厂厂长岗位职责
2013/12/29 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python