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 相关文章推荐
新闻分类录入、显示系统
Oct 09 PHP
PHP下使用CURL方式POST数据至API接口的代码
Feb 14 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
php错误级别的设置方法
Jun 17 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
Jun 19 PHP
php删除数组指定元素实现代码
May 03 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
Jul 03 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
Feb 15 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
Jul 26 PHP
php array_map()函数实例用法
Mar 03 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
十大“创意”战术!
2020/03/04 星际争霸
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
用php实现批量查询清除一句话后门的代码
2008/01/20 PHP
解析csv数据导入mysql的方法
2013/07/01 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
动态加载js文件 document.createElement
2006/10/14 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
ES6数组与对象的解构赋值详解
2019/06/14 Javascript
js实现一个简易计算器
2020/03/30 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
jQuery实现简单聊天室
2020/02/08 jQuery
vue+AI智能机器人回复功能实现
2020/07/16 Javascript
python抽象基类用法实例分析
2015/06/04 Python
在Django中限制已登录用户的访问的方法
2015/07/23 Python
遗传算法之Python实现代码
2017/10/10 Python
python应用Axes3D绘图(批量梯度下降算法)
2020/03/25 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
keras之权重初始化方式
2020/05/21 Python
Python csv文件记录流程代码解析
2020/07/16 Python
请说出你所知道的线程同步的方法
2013/04/19 面试题
关于元旦的广播稿
2014/02/16 职场文书
推荐信格式范文
2014/05/09 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
教师个人总结范文
2015/02/11 职场文书
火烧圆明园的观后感
2015/06/03 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
护理自荐信
2019/05/14 职场文书
详解Vue slot插槽
2021/11/20 Vue.js