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不用正则采集速度探究总结
Mar 24 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
Oct 17 PHP
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
May 08 PHP
PHP $_FILES中error返回值详解
Jan 30 PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 PHP
apache和PHP如何整合在一起
Oct 12 PHP
PHP版本常用的排序算法汇总
Dec 20 PHP
浅谈PHP中静态方法和非静态方法的相互调用
Oct 04 PHP
PHP strcmp()和strcasecmp()的区别实例
Nov 05 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
Nov 05 PHP
PHP+Apache环境中如何隐藏Apache版本
Nov 24 PHP
PHP实现的ID混淆算法类与用法示例
Aug 10 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 无极分类(递归)实现代码
2010/01/05 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
2009/12/13 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
2011/06/27 Javascript
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
javaScript封装的各种写法
2017/08/14 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
[23:21]Ti4 冒泡赛第二轮DK vs C9 2
2014/07/14 DOTA
基于python实现微信模板消息
2015/12/21 Python
python中通过预先编译正则表达式提高效率
2017/09/25 Python
python读取文本中的坐标方法
2018/10/14 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
GUESS Factory加拿大:牛仔裤、服装及配饰
2019/09/20 全球购物
UML设计模式笔试题
2014/06/07 面试题
拾金不昧表扬信范文
2014/01/11 职场文书
淘宝中秋节活动方案
2014/01/31 职场文书
销售顾问工作计划书
2014/08/15 职场文书
2014年语文教研组工作总结
2014/12/06 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫