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 相关文章推荐
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
Dec 18 PHP
php 冒泡排序 交换排序法
May 10 PHP
php设置编码格式的方法
Mar 05 PHP
php上传图片到指定位置路径保存到数据库的具体实现
Dec 30 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
Jan 31 PHP
PHP单例模式详细介绍
Jul 01 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
Dec 02 PHP
PHP中new static()与new self()的比较
Aug 19 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
Jul 31 PHP
php精度计算的问题解析
Jun 21 PHP
PHP实现提高SESSION响应速度的几种方法详解
Aug 09 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
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
php的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
JavaScript编程开发中的五个实用小技巧
2010/07/22 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
python实现中文分词FMM算法实例
2015/07/10 Python
解析Python编程中的包结构
2015/10/25 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
python自动化生成IOS的图标
2018/11/13 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
2020/05/26 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
详解Python调用系统命令的六种方法
2021/01/28 Python
德国BA保镖药房中文网:Bodyguard Apotheke
2021/03/09 全球购物
自动化职业生涯规划书范文
2014/01/03 职场文书
小学端午节活动方案
2014/03/13 职场文书
光信息科学与技术专业职业生涯规划
2014/03/13 职场文书
我是一名护士演讲稿
2014/08/28 职场文书
七一建党日演讲稿
2014/09/05 职场文书
少先队中队工作总结
2015/08/14 职场文书
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫