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游戏编程25个脚本代码
Feb 08 PHP
PHP高自定义性安全验证码代码
Nov 27 PHP
PHP手机号码归属地查询代码(API接口/mysql)
Sep 04 PHP
php中ob_flush函数和flush函数用法分析
Mar 18 PHP
php中JSON的使用方法
Apr 30 PHP
PHP Oauth授权和本地加密实现方法
Aug 12 PHP
PHP简单检测网址是否能够正常打开的方法
Sep 04 PHP
php使用ftp实现文件上传与下载功能
Jul 21 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
PHP实现的超长文本分页显示功能示例
Jun 04 PHP
PHP使用XMLWriter读写xml文件操作详解
Jul 31 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
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
php 连接mysql连接被重置的解决方法
2011/02/15 PHP
一个PHP缓存类代码(附详细说明)
2011/06/09 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
2013/07/05 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
php数组中包含中文的排序方法
2014/06/03 PHP
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
prototype class详解
2006/09/07 Javascript
jQuery Clone Bug解决代码
2010/12/22 Javascript
javascript每日必学之运算符
2016/02/16 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
JS实现中国公民身份证号码有效性验证
2017/02/20 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
浅谈Redux中间件的实践
2018/07/27 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
layui 中select下拉change事件失效的解决方法
2019/09/20 Javascript
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
python按照多个条件排序的方法
2019/02/08 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
python爬虫 线程池创建并获取文件代码实例
2019/09/28 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
2020/06/30 Python
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
过滤器的用法
2013/10/08 面试题
计算机专业自我鉴定
2013/10/15 职场文书
开会通知
2015/04/20 职场文书
复兴之路观后感
2015/06/02 职场文书
2015年教师节新闻稿
2015/07/17 职场文书
办公室管理规章制度
2015/08/04 职场文书
初中数学教学随笔
2015/08/15 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
vue+echarts实现多条折线图
2022/03/21 Vue.js