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 相关文章推荐
Ha0k 0.3 PHP 网页木马修改版
Oct 11 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
Jun 26 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
46 个非常有用的 PHP 代码片段
Feb 16 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
Apr 11 PHP
php mysql 封装类实例代码
Sep 18 PHP
Laravel实现autoload方法详解
May 07 PHP
详解PHP神奇又有用的Trait
Mar 25 PHP
php实现多站点共用session实现单点登录的方法详解
Sep 18 PHP
Laravel框架Eloquent ORM修改数据操作示例
Dec 03 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 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 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
php限制ip地址范围的方法
2015/03/31 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
User Scripts: Video Download by User Scripts
2007/05/14 Javascript
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
JavaScript toFixed() 方法
2010/04/15 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
微信小程序获取微信运动步数的实例代码
2017/07/20 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
原生JavaScript实现购物车
2021/01/10 Javascript
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
Python通过解析网页实现看报程序的方法
2014/08/04 Python
Python中列表(list)操作方法汇总
2014/08/18 Python
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
Django实现分页功能
2018/07/02 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
keras中的backend.clip用法
2020/05/22 Python
Django框架请求生命周期实现原理
2020/11/13 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
酒店服务实习自我鉴定
2013/09/22 职场文书
2014年应届大学生自我评价
2014/01/09 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
小学生个人先进事迹材料
2014/05/08 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
2014年秘书工作总结
2014/11/25 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
失恋33天观后感
2015/06/11 职场文书