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 相关文章推荐
检测png图片是否完整的php代码
Sep 06 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
Feb 06 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
php日历制作代码分享
Jan 20 PHP
MongoDB在PHP中的常用操作小结
Feb 20 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
Mar 25 PHP
PHP5.3与5.5废弃与过期函数整理汇总
Jul 10 PHP
php中数字、字符与对象判断函数用法实例
Nov 26 PHP
php通过修改header强制图片下载的方法
Mar 24 PHP
PHP魔术方法的使用示例
Jun 23 PHP
php7安装mongoDB扩展的方法分析
Aug 02 PHP
php 多继承的几种常见实现方法示例
Nov 18 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的cURL库功能简介 抓取网页、POST数据及其他
2011/04/07 PHP
PHP扩展程序实现守护进程
2015/04/16 PHP
thinkphp分页集成实例
2017/07/24 PHP
php微信开发之关注事件
2018/06/14 PHP
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
js格式化时间和js格式化时间戳示例
2014/02/10 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
2020/08/11 Javascript
JavaScript 封装一个tab效果源码分享
2015/09/15 Javascript
jQuery中$.ajax()方法参数解析
2016/10/22 Javascript
基于js实现二级下拉联动
2016/12/17 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
2017/12/06 Javascript
vue移动端弹框组件的实例
2018/09/25 Javascript
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
vue.js实现的幻灯片功能示例
2019/01/18 Javascript
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
Python将多份excel表格整理成一份表格
2018/01/03 Python
python实现贪吃蛇小游戏
2020/03/21 Python
Python线程之定位与销毁的实现
2019/02/17 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
使用Python将语音转换为文本的方法
2020/08/10 Python
python实现计算器简易版
2020/12/17 Python
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
舞蹈教师自荐信
2014/01/27 职场文书
运动会入场词50字
2014/02/20 职场文书
小学二年级评语
2014/04/21 职场文书
信息技术课后反思
2014/04/27 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
学习之星事迹材料
2014/05/17 职场文书
任命书格式
2014/06/05 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
教师个人考察材料
2014/12/16 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书