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

2015-01-24信息快讯网

asp取真实IP的代码,搭环境测试无代理、一级或多级代理的情况,可以正常获取

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连接MYSQL成功与否的代码
PHP 通过Socket收发十六进制数据的实现代码
PHP中将ip地址转成十进制数的两种实用方法
php中的Base62类(适用于数值转字符串)
PHP计算2点经纬度之间的距离代码
php 删除目录下N分钟前创建的所有文件的实现代码
将word转化为swf 如同百度文库般阅读实现思路及代码
php addslashes 利用递归实现使用反斜线引用字符串
PHP与javascript实现变量交互的示例代码
php curl获取网页内容(IPV6下超时)的解决办法
实测在class的function中include的文件中非php的global全局环境
浅析PHP的ASCII码转换类
将IP地址转换为整型数字的PHP方法、Asp方法和MsSQL方法、MySQL方法
解析array splice的移除数组中指定键的值,返回一个新的数组
解析php根据ip查询所在地区(非常有用,赶集网就用到)
php 去除html标记--strip_tags与htmlspecialchars的区别详解
关于Sphinx创建全文检索的索引介绍
使用Sphinx对索引进行搜索
php简单开启gzip压缩方法(zlib.output_compression)
php检测图片木马多进制编程实践
关于shopex同步ucenter的redirect问题,导致script不运行
简单的php数据库操作类代码(增,删,改,查)
PHP插入排序实现代码
精美漂亮的php分页类代码
php页面跳转代码 输入网址跳转到你定义的页面
比较简单的百度网盘文件直链PHP代码
简单实现限定phpmyadmin访问ip的方法
php中使用addslashes函数报错问题的解决方法
PHP/Javascript/CSS/jQuery常用知识大全详细整理第1/2页
php和javascript之间变量的传递实现代码
有道搜索和IP138的IP的API接口(PHP应用)
PHP C EasyUI DataGrid 资料存的方式介绍
PHP C EasyUI DataGrid 资料取的方式介绍
asp.net 组合模式的一个例子
记录PHP错误日志 display_errors与log_errors的区别
仿Aspnetpager的一个PHP分页类代码 附源码下载
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
php中explode与split的区别介绍
©2014-2024 dbsqp.com