做了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 相关文章推荐
PHP5中MVC结构学习
Oct 09 PHP
让PHP支持断点续传的源码
May 16 PHP
PHP CodeBase:将时间显示为"刚刚""n分钟/小时前"的方法详解
Jun 06 PHP
如何在PHP中使用正则表达式进行查找替换
Jun 13 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
php实现斐波那契数列的简单写法
Jul 19 PHP
PHP中ini_set与ini_get用法实例
Nov 04 PHP
页面利用渐进式JPEG来提升用户体验度
Dec 01 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
Jan 26 PHP
如何使用GDB调试PHP程序
Dec 08 PHP
浅谈php(codeigniter)安全性注意事项
Apr 06 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 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
用PHP读注册表
2006/10/09 PHP
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
初品cakephp 入门基础
2012/02/16 PHP
php随机输出名人名言的代码
2012/10/07 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
2014/04/08 PHP
php+ajax导入大数据时产生的问题处理
2014/06/11 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
javascript 闭包
2011/09/15 Javascript
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
浅析Js中的单引号与双引号问题
2013/11/06 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
highCharts提示框中显示当前时间的方法
2019/01/18 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
python 域名分析工具实现代码
2009/07/15 Python
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
matplotlib给子图添加图例的方法
2018/08/03 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
linux下进程间通信的方式
2013/01/23 面试题
党风廉政承诺书
2014/03/27 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
教师工作能力自我评价
2015/03/04 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书
全新239军机修复记
2022/04/05 无线电