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 数组教程 定义数组
Oct 23 PHP
在字符串指定位置插入一段字符串的php代码
Feb 16 PHP
php根据生日计算年龄的方法
Jul 13 PHP
详谈PHP编码转换问题
Jul 28 PHP
thinkPHP3.2简单实现文件上传的方法
May 16 PHP
PHP简单判断手机设备的方法
Aug 23 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
PHP常用字符串函数小结(推荐)
Aug 05 PHP
PHP文件操作实例总结【文件上传、下载、分页】
Dec 08 PHP
简单实用的PHP文本缓存类实例
Mar 22 PHP
php如何把表单内容提交到数据库
Jul 08 PHP
php redis setnx分布式锁简单原理解析
Oct 23 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生成随机密码的三种方法小结
2010/09/04 PHP
基于php无限分类的深入理解
2013/06/02 PHP
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
php内存缓存实现方法
2015/01/24 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
phpinfo的知识点总结
2019/10/10 PHP
键盘控制事件应用教程大全
2006/11/24 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
2013/06/28 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
js判断60秒以及倒计时示例代码
2014/01/24 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
简单实现js间歇或无缝滚动效果
2016/06/29 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
vue车牌号校验和银行校验实战
2019/01/23 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
2019/02/19 jQuery
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
浅谈python函数之作用域(python3.5)
2017/10/27 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
django修改models重建数据库的操作
2020/03/31 Python
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
2014年安全工作总结范文
2014/11/13 职场文书
食品安全责任书范本
2015/05/09 职场文书
八月迷情观后感
2015/06/11 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
团队拓展训练心得体会
2016/01/12 职场文书
车位出租协议书范本
2016/03/19 职场文书
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python