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 获得汉字拼音首字母的函数
Aug 01 PHP
Ajax+PHP 边学边练之四 表单
Nov 27 PHP
PHP编码规范之注释和文件结构说明
Jul 09 PHP
php获取mysql数据库中的所有表名的代码
Apr 23 PHP
Yii2 rbac权限控制之菜单menu实例教程
Apr 28 PHP
PHP+mysql实现从数据库获取下拉树功能示例
Jan 06 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
Jun 19 PHP
PHP APP微信提现接口代码
Sep 30 PHP
PHP实现的用户注册表单验证功能简单示例
Feb 25 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
Aug 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
用mysql触发器自动更新memcache的实现代码
2009/10/11 PHP
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
PHP远程连接oracle数据库操作实现方法图文详解
2019/04/11 PHP
php适配器模式简单应用示例
2019/10/23 PHP
淘宝搜索框效果实现分析
2011/03/05 Javascript
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
基于jQuery实现左右图片轮播(原理通用)
2015/12/24 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
react.js 获取真实的DOM节点实例(必看)
2017/04/17 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
[00:36]我的中国心——Serenity vs Fnatic
2018/08/21 DOTA
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
python常规方法实现数组的全排列
2015/03/17 Python
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
Python中实现switch功能实例解析
2018/01/11 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
python3 中使用urllib问题以及urllib详解
2020/08/03 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
浅谈HTML5 &amp; CSS3的新交互特性
2016/07/19 HTML / CSS
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
专业幼师实习生自我鉴定范文
2013/12/08 职场文书
大学本科生职业生涯规划书范文
2014/09/14 职场文书
新年晚会主持词开场白
2015/05/28 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏