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+MySQL 制作简单的留言本
Nov 02 PHP
php 模拟get_headers函数的代码示例
Apr 27 PHP
ThinkPHP模板替换与系统常量及应用实例教程
Aug 22 PHP
thinkphp的URL路由规则与配置实例
Nov 26 PHP
php简单生成随机数的方法
Jul 30 PHP
PHP实现QQ空间自动回复说说的方法
Dec 02 PHP
php处理带有中文URL的方法
Jul 11 PHP
PHP转换文本框内容为HTML格式的方法
Jul 20 PHP
php实时倒计时功能实现方法详解
Feb 27 PHP
php 数组元素快速去重
May 05 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
php定期拉取数据对比方法实例
Sep 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实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
浅谈JavaScript之事件绑定
2013/07/08 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
layui select动态添加option的实例
2018/03/07 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
Python实现线程状态监测简单示例
2018/03/28 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
python+OpenCV实现图像拼接
2020/03/05 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
班级安全教育实施方案
2014/02/23 职场文书
实习评语大全
2014/04/26 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
公司委托书范本5篇
2014/09/20 职场文书
布达拉宫导游词
2015/02/02 职场文书
2015年质检工作总结
2015/05/04 职场文书
教师旷工检讨书
2015/08/15 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js