欢迎来到 0713网站目录
登录

    虚拟主机登录会员或登录后台管理,一般都会获取用户客户端地址并记录数据库.但相同程序部署我司虚拟主机后,获取客户端地址不是用户真实ip地址或为 "127.0.0.1",可以通过以下方式修改获取客户ip地址部分代码解决.


Supesite使用CDN后获取真实IP 办法

include/main.inc.php文件,这部分

if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$_SGLOBAL['onlineip'] = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$_SGLOBAL['onlineip'] = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$_SGLOBAL['onlineip'] = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$_SGLOBAL['onlineip'] = $_SERVER['REMOTE_ADDR'];
}

替换成

function get_real_ip()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"]))
{
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip)
{
array_unshift($ips, $ip); $ip = FALSE;
}
for ($i = 0; $i < count($ips); $i++)
{
if(!preg_match("/^(10|172\.16|192\.168)\./", $ $ips[$i])){
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
$_SGLOBAL['onlineip'] = get_real_ip();

Discuz!使用CDN后获取真实IP办法

nclude/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')) {
$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'];
}


替换为:

function get_real_ip()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"]))
{
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip)
{
array_unshift($ips, $ip); $ip = FALSE;
}
for ($i = 0; $i < count($ips); $i++)
{
if(!preg_match("/^(10|172\.16|192\.168)\./", $ $ips[$i]))

{
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
$onlineip = get_real_ip();



帝国cms后台记录的ip日志和用户注册记录的ip

\e\class\connect.php搜索function egetip()函数中的获取ip代码修改成以上部分


DZ注册用户IP和邀请码拥有者IP相同的解决办法

方法A:


register.php 200行

showmessage('register_invite_iperror');
改为
//showmessage('register_invite_iperror');

方法B:
在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')) {
$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'];
}

替换成:

代码:
$onlineip=getenv('HTTP_X_FORWARD_FOR');

--------------------

做了CDN的ASP网站如何取到用户真实IP程序


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

ASP.NET获取IP的6种方法

服务端:

//方法一
HttpContext.Current.Request.UserHostAddress; 

//方法二
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

//方法三
string strHostName = System.Net.Dns.GetHostName();
string clientIPAddress = System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString();

//方法四(无视代理)
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

客户端:

//方法五
var ip = '<!--#echo var="REMOTE_ADDR"-->';
alert(
"Your IP address is "+ip);

//方法六(无视代理)
function GetLocalIPAddress() 

    
var obj = null
    
var rslt = ""
    
try 
    

        obj 
= new ActiveXObject("rcbdyctl.Setting"); 
        rslt 
= obj.GetIPAddress; 
        obj 
= null
    }
 
    
catch(e) 
    

        
// 
    }
 
     
    
return rslt; 
   }
 

来自印度的MCT Maulik Patel提供了一种服务端的解决方案,很好:

if(Context.Request.ServerVariables["HTTP_VIA"]!=null// using proxy

     ip
=Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();  // Return real client IP.
}

else// not using proxy or can't get the Client IP

     ip
=Context.Request.ServerVariables["REMOTE_ADDR"].ToString(); //While it can't get the Client IP, it will return proxy IP.
}


备注:

1. 有些代理是不会发给我们真实IP地址的

2. 有些客户端会因为“header_access deny”的安全设置而不发给我们IP
 

net的也可以参考http://www.cdnunion.com/articleinfo.php?pid=158设置

特别提示:

推荐

最新

最新文章

局域网怎么开启ftp访问共享
陈都灵|哇塞!太适合当壁纸啦~
虚拟主机常见组件版本及参数支持情况(不支持反解析)
祝绪丹|你低头浅笑时,恰似日光拂面来
虚拟主机子站功能开设子网站流程
黄霄雲|人美歌甜,身材还这么好
习近平总书记重要讲话,全文来了!
discuz X3.2最新20141225安装包uc_server不能登陆问题(包括升级后)
虚拟主机乱码目录文件删除(适用Linux系统)
虚拟主机畸形病毒字体文件删除(适用windows系统)
𝗦𝗵𝗮𝗿𝗲 | 章若楠高清壁纸
虚拟主机批量替换文本内容
王楚然 | 第一梯队的身材和颜值
𝕾𝖍𝖆𝖗𝖊壁纸|是 陈都灵呀!
为什么分配的二级*.gotoip*.com访问提示风险?为什么不申述,如何处理?
陈都灵 | 勾人魂的颜值与身材
高德、百度地图到底用哪个?深度评测
强烈建议你多多暗示自己“我很棒”!结果你肯定猜不到
守护开学季,这份防诈指南请收好!
MAC OS 苹果系统如何安装FileZilla上传程序

猜你想看

开全天和开半天?实测告诉你夏天怎么开空调省电
汽车车机哪家强?5 大车机解决方案横评
经常喝酒的人注意了,出现这几种情况要去看医生了
老人财产给其中一子女,需其他子女签字吗?
珍珠保养有诀窍,让你的珠宝更闪亮
kafka面试题:Zookeeper 在 Kafka 中的作用
开车那么久,你知道该如何保养爱车吗?
《史前星球》豆瓣9.6高分 这剧太震撼了!!视觉效果炸裂
『Share』田曦薇COS「千金淑猫」电脑壁纸
“左转虚线”是什么意思?驾校都没学过,上百人被扣3分
红酒过期了还能喝吗?酿酒师傅给出答案,看完涨知识了
如何辨别冰箱有问题?教您一些实用小窍门,简单易学!
喜剧电影《甜蜜蜜:7510》解说文案
心理学家:敏感的人容易想太多,心很累怎么办?3个方法停止内耗
冬天野钓鲫鱼,线组大小该如何搭配?老钓友推荐三个组合
超八成受访者感觉“第一学历”的重要性在招聘中被过度放大
倒车影像应该怎么看呢?倒车影像的特点是什么?
steam 登录不了怎么办?一招解决
被无故调岗该怎么办?
游泳溺水自救方法有哪些?