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中一个控制字符串输出的函数
Oct 09 PHP
PHP中的正规表达式(一)
Oct 09 PHP
GBK的页面输出JSON格式的php函数
Feb 16 PHP
smarty巧妙处理iframe中内容页的代码
Mar 07 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
Jun 27 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
Oct 24 PHP
完美实现wordpress禁止文章修订和自动保存的方法
Nov 03 PHP
php实现mysql数据库分表分段备份
Jun 18 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
PHP单态模式简单用法示例
Nov 16 PHP
laravel 框架配置404等异常页面
Jan 07 PHP
PHP中关于php.ini参数优化详解
Feb 28 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
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
js全屏显示显示代码的三种方法
2013/11/11 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
Python入门篇之编程习惯与特点
2014/10/17 Python
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
json跨域调用python的方法详解
2017/01/11 Python
pandas重新生成索引的方法
2018/11/06 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
python爬虫 正则表达式解析
2019/09/28 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
材料加工工程求职信
2014/02/19 职场文书
《四季》教学反思
2014/04/08 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
差生评语大全
2014/05/04 职场文书
学校读书活动总结
2014/06/30 职场文书
2014年党员自我评议对照检查材料
2014/09/20 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
文案策划岗位职责
2015/02/11 职场文书
2016年公司新年寄语
2015/08/17 职场文书
《社戏》教学反思
2016/02/22 职场文书