做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)


Posted in PHP onApril 13, 2013

asp函数代码:

function checkip(checkstring)'用正则判断IP是否合法
dim re1
set re1=new RegExp
re1.pattern=”^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$”
re1.global=false
re1.Ignorecase=false
checkip=re1.test(checkstring)
set re1=nothing
end function
function get_cli_ip()'取真实IP函数,先 HTTP_CLIENT_IP 再 HTTP_X_FORWARDED_FOR 再 REMOTE_ADDR
dim client_ip
if checkip(Request.ServerVariables(”HTTP_CLIENT_IP”))=true then
get_cli_ip = checkip(Request.ServerVariables(”HTTP_CLIENT_IP”))
else
MyArray = split(Request.ServerVariables(”HTTP_X_FORWARDED_FOR”),”,”)
if ubound(MyArray)>=0 then
client_ip = trim(MyArray(0))
if checkip(client_ip)=true then
get_cli_ip = client_ip
exit function
end if
end if
get_cli_ip = Request.ServerVariables(”REMOTE_ADDR”)
end if
end function

discuz论坛取真实IP的php代码,其它类似,请参考稍做修改

(discuz修改include/common.inc.php)
用以下这段代码:

if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),
'unknown')) {
$testip = explode('.', getenv('HTTP_X_FORWARDED_FOR'));
if ($testip[0]=='192′ && $testip[1]=='168′) {
$onlineip = getenv('REMOTE_ADDR');
}
elseif($testip[0]=='10′) {
$onlineip = getenv('REMOTE_ADDR');
}
else {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
}
//gamesir hack end} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'),
'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER
['REMOTE_ADDR'],'unknown')) {
//by Johnny
$tmp_ip = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$tmp_ip1 = explode(',',$tmp_ip[0]);
if ($tmp_ip1[0] =='192′ && $tmp_ip1[1] =='168′) {
$onlineip = getenv('REMOTE_ADDR');
}else if($tmp_ip1[0]=='10′) {
$onlineip = getenv('REMOTE_ADDR');
}
else{
$onlineip = $tmp_ip[0];
}
unset($tmp_ip);unset($tmp_ip1);
}

替换这段代码:

if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),
'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'),'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER
['REMOTE_ADDR'],'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
PHP 相关文章推荐
PHP新手上路(十一)
Oct 09 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
Aug 23 PHP
微博短链接算法php版本实现代码
Sep 15 PHP
Yii实现自动加载类地图的方法
Apr 01 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
PHP基于yii框架实现生成ICO图标
Nov 13 PHP
php编译安装php-amq扩展简明教程
Jun 25 PHP
PHP静态成员变量
Feb 14 PHP
php unlink()函数使用教程
Jul 12 PHP
PHP之多条件混合筛选功能的实现方法
Oct 09 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
Oct 24 PHP
php检测图片木马多进制编程实践
Apr 11 #PHP
谈谈关于php的优点与缺点
Apr 11 #PHP
如何用PHP实现插入排序?
Apr 10 #PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 #PHP
克隆一个新项目的快捷方式
Apr 10 #PHP
str_replace只替换一次字符串的方法
Apr 09 #PHP
apache和php之间协同工作的配置经验分享
Apr 08 #PHP
You might like
Linux下php5.4启动脚本
2014/08/03 PHP
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
基于jquery的一个图片hover的插件
2010/04/24 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
对于Python中RawString的理解介绍
2016/07/07 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2017/03/12 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
python邮件发送smtplib使用详解
2020/06/16 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
python抖音表白程序源代码
2019/04/07 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
银行财务部实习生的自我鉴定
2013/11/27 职场文书
初中生自我评价
2014/02/01 职场文书
决心书范文
2014/03/11 职场文书
大学毕业寄语大全
2014/04/10 职场文书
节约能源标语
2014/06/17 职场文书
入党积极分子学习党的纲领思想汇报
2014/09/13 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
关于军训的感想
2015/08/07 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
python3读取文件指定行的三种方法
2021/05/24 Python
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫