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 的ArrayAccess接口 像数组一样来访问你的PHP对象
Oct 12 PHP
php运行出现Call to undefined function curl_init()的解决方法
Nov 02 PHP
php缓冲 output_buffering的使用详解
Jun 13 PHP
php通过字符串调用函数示例
Mar 02 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
Aug 21 PHP
php中mt_rand()随机数函数用法
Nov 24 PHP
php猴子选大王问题解决方法
May 12 PHP
PHP实现linux命令tail -f
Feb 22 PHP
Yii数据模型中rules类验证器用法分析
Jul 15 PHP
PHP使用Redis替代文件存储Session的方法
Feb 15 PHP
使用XHProf查找PHP性能瓶颈的实例
Dec 13 PHP
零基础php编程好学吗
Oct 11 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
Ajax PHP简单入门教程代码
2008/04/25 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
JavaScript实现删除电脑的关机键
2016/07/26 PHP
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
js DOM的学习笔记
2011/12/22 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
python保存网页图片到本地的方法
2018/07/24 Python
Pytorch模型转onnx模型实例
2020/01/15 Python
基于python实现对文件进行切分行
2020/04/26 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
《盲人摸象》教学反思
2014/02/16 职场文书
装修施工安全责任书
2014/07/24 职场文书
2014年依法行政工作总结
2014/11/19 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书