PHP获取客户端及服务器端IP的封装类


Posted in PHP onJuly 21, 2016

本文实例讲述了PHP获取客户端及服务器端IP的封装类。分享给大家供大家参考,具体如下:

客户端IP相关的变量:

1. $_SERVER['REMOTE_ADDR']; 客户端IP,有可能是用户的IP,也有可能是代理的IP。

2. $_SERVER['HTTP_CLIENT_IP']; 代理端的IP,可能存在,可伪造。

3. $_SERVER['HTTP_X_FORWARDED_FOR']; 用户是在哪个IP使用的代理,可能存在,可以伪造。

服务器端IP相关的变量:

1. $_SERVER["SERVER_NAME"],需要使用函数gethostbyname()获得。这个变量无论在服务器端还是客户端均能正确显示。

2. $_SERVER["SERVER_ADDR"],在服务器端测试:127.0.0.1(这个与httpd.conf中BindAddress的设置值相关)。在客户端测试结果正确。

类如下:

class getIP{
 function clientIP(){
 $cIP = getenv('REMOTE_ADDR');
 $cIP1 = getenv('HTTP_X_FORWARDED_FOR');
 $cIP2 = getenv('HTTP_CLIENT_IP');
 $cIP1 ? $cIP = $cIP1 : null;
 $cIP2 ? $cIP = $cIP2 : null;
 return $cIP;
 }
 function serverIP(){
 return gethostbyname($_SERVER["SERVER_NAME"]);
 }
}
$getIP = new getIP();
$clientIp = getIP::clientIP();
$serverIp = getIP::serverIP();
echo 'Client IP is ',$clientIp,'<br />';
echo 'Server IP is ',$serverIp,'<br />';

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
Jun 24 PHP
PHP的构造方法,析构方法和this关键字详细介绍
Oct 22 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
Jan 09 PHP
php中sql注入漏洞示例 sql注入漏洞修复
Jan 24 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 PHP
php关闭warning问题的解决方法
May 17 PHP
php将html转为图片的实现方法
May 19 PHP
php简单处理XML数据的方法示例
May 19 PHP
php的常量和变量实例详解
Jun 27 PHP
php post json参数的传递和接收处理方法
May 31 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
Oct 24 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
Jul 21 #PHP
PHP获取当前文件的父目录方法汇总
Jul 21 #PHP
功能强大的php分页函数
Jul 20 #PHP
PHP转换文本框内容为HTML格式的方法
Jul 20 #PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 #PHP
PHP购物车类Cart.class.php定义与用法示例
Jul 20 #PHP
无需数据库在线投票调查php代码
Jul 20 #PHP
You might like
php面向对象全攻略 (八)重载新的方法
2009/09/30 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
2012/12/21 PHP
使用PHP求两个文件的相对路径
2013/06/20 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
accesskey 提交
2006/06/26 Javascript
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
jquery日历插件datepicker用法分析
2016/01/22 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
vxe-table vue table 表格组件功能
2019/05/26 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
Python运行报错UnicodeDecodeError的解决方法
2016/06/07 Python
python根据unicode判断语言类型实例代码
2018/01/17 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
python使用pygame框架实现推箱子游戏
2018/11/20 Python
django+mysql的使用示例
2018/11/23 Python
python Tkinter的图片刷新实例
2019/06/14 Python
Python格式化字符串f-string概览(小结)
2019/06/18 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
python yield和Generator函数用法详解
2020/02/10 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
.NET笔试题(20个问题)
2016/02/02 面试题
医院护士见习期自我鉴定
2014/04/10 职场文书
安全责任书范文
2014/08/25 职场文书
详细的本科生职业生涯规划范文
2014/09/16 职场文书
领导班子群众路线与四风问题对照检查材料思想汇报
2014/10/11 职场文书
公司授权委托书
2014/10/17 职场文书
政风行风评议工作总结
2014/10/21 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
2016年读书月活动总结范文
2016/04/06 职场文书
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
2022/01/18 PostgreSQL
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript