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 多线程上下文中安全写文件实现代码
Dec 28 PHP
一些php技巧与注意事项分析
Feb 03 PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 PHP
PHP重定向的3种方式
Mar 07 PHP
PHP在线生成二维码代码(google api)
Jun 03 PHP
基于Swoole实现PHP与websocket聊天室
Aug 03 PHP
php文件上传、下载和删除示例
Aug 28 PHP
浅谈PHP命令执行php文件需要注意的问题
Dec 16 PHP
php实现简单加入购物车功能
Mar 07 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
Yii框架自定义数据库操作组件示例
Nov 11 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
Apr 14 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 socket的讲解与实例分析
2013/06/13 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
js清理Word格式示例代码
2014/02/13 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
2016/04/01 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
ui-router中使用ocLazyLoad和resolve的具体方法
2017/10/18 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
微信小程序常用的3种提示弹窗实现详解
2019/09/19 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
Vue实现简单购物车功能
2020/12/13 Vue.js
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
Python如何实现强制数据类型转换
2019/11/22 Python
python代码xml转txt实例
2020/03/10 Python
python中的垃圾回收(GC)机制
2020/09/21 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
内科护士实习自我鉴定
2013/10/17 职场文书
经销商培训邀请函
2014/01/21 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
python代码实现备忘录案例讲解
2021/07/26 Python
HTML基本元素标签介绍
2022/02/28 HTML / CSS