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导入Excel到MySQL的方法
Apr 23 PHP
php修改时间格式的代码
May 29 PHP
关于PHP堆栈与列队的学习
Jun 21 PHP
PHP数组排序之sort、asort与ksort用法实例
Sep 08 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
Jul 28 PHP
PHP 微信支付类 demo
Nov 30 PHP
PHP树-不需要递归的实现方法
Jun 21 PHP
php微信开发之上传临时素材
Jun 24 PHP
PHP多维数组指定多字段排序的示例代码
May 16 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 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
全国FM电台频率大全 - 2 天津市
2020/03/11 无线电
支持oicq头像的留言簿(二)
2006/10/09 PHP
PHP 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
php目录操作实例代码
2014/02/21 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
PHP调用Mailgun发送邮件的方法
2017/05/04 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
2014/02/12 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
Windows下使Python2.x版本的解释器与3.x共存的方法
2015/10/25 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
pycharm 配置远程解释器的方法
2018/10/28 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
html5利用canvas绘画二级树形结构图的示例
2017/09/27 HTML / CSS
HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能
2018/04/23 HTML / CSS
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
小学生综合素质评语
2014/04/23 职场文书
小班上学期评语
2014/05/05 职场文书
小学校园文化建设汇报材料
2014/08/19 职场文书
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android