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 setcookie() cannot modify header information 的解决方法
Jan 09 PHP
一些 PHP 管理系统程序中的后门
Aug 05 PHP
php设计模式  Command(命令模式)
Jun 17 PHP
php 模拟get_headers函数的代码示例
Apr 27 PHP
php将csv文件导入到mysql数据库的方法
Dec 24 PHP
php生成年月日下载列表的方法
Apr 24 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
Jul 01 PHP
举例讲解PHP面对对象编程的多态
Aug 12 PHP
PHP中读取文件的几个方法总结(推荐)
Jun 03 PHP
php获取网站根目录物理路径的几种方法(推荐)
Mar 04 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
php从数据库读取数据,并以json格式返回数据的方法
Aug 21 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 中的一些经验积累
2006/10/09 PHP
PHP.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
2020/10/30 PHP
javscript对象原型的一些看法
2010/09/19 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
详解angular2.x创建项目入门指令
2018/10/11 Javascript
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
python获取指定时间差的时间实例详解
2017/04/11 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
python爬取各类文档方法归类汇总
2018/03/22 Python
Python实现简单http服务器
2018/04/12 Python
python对excel文档去重及求和的实例
2018/04/18 Python
详解python算法之冒泡排序
2019/03/05 Python
详解Python的循环结构知识点
2019/05/20 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
介绍Java的内部类
2012/10/27 面试题
外贸公司实习自我鉴定
2013/09/24 职场文书
精彩的大学生自我评价
2013/11/17 职场文书
商铺租赁意向书
2014/04/01 职场文书
法人授权委托书范本
2014/04/04 职场文书
青春奉献演讲稿
2014/05/08 职场文书
详解Javascript实践中的命令模式
2021/05/05 Javascript
MySQL中in和exists区别详解
2021/06/03 MySQL