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二分法在IP地址查询中的应用
Aug 12 PHP
php xml留言板 xml存储数据的简单例子
Aug 24 PHP
Php output buffering缓存及程序缓存深入解析
Jul 15 PHP
php header功能的使用
Oct 28 PHP
PHP截取指定图片大小的方法
Dec 10 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
Yii调试查看执行SQL语句的方法
Jul 15 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
Laravel中unique和exists验证规则的优化详解
Jan 28 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
Feb 25 PHP
Laravel 自带的Auth验证登录方法
Sep 30 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 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
第十三节 对象串行化 [13]
2006/10/09 PHP
PHP 图片文件上传实现代码
2010/12/29 PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
2012/07/31 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
php约瑟夫问题解决关于处死犯人的算法
2015/03/23 PHP
PHP7新功能总结
2019/04/14 PHP
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
为原生js Array增加each方法
2012/04/07 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
Python 正则表达式操作指南
2009/05/04 Python
python发送arp欺骗攻击代码分析
2014/01/16 Python
Python Sleep休眠函数使用简单实例
2015/02/02 Python
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
详细解读Python中解析XML数据的方法
2015/10/15 Python
Python将图片批量从png格式转换至WebP格式
2020/08/22 Python
Pyqt5实现英文学习词典
2019/06/24 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
把富文本的回车转为br标签
2019/08/09 HTML / CSS
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
中国电视购物:快乐购
2017/02/04 全球购物
.NET面试10题
2014/02/24 面试题
聚美优品励志广告词
2014/03/14 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
解决jupyter notebook启动后没有token的坑
2021/04/24 Python
Python基础之数据类型知识汇总
2021/05/18 Python