国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

網(wǎng)站使用CDN后,獲取真實(shí)IP的辦法

2015-12-07 11:38:21 11631

Supesite使用CDN后獲取真實(shí)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 (!eregi ("^(10|172.16|192.168).", $ips[$i]))
{
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_SERVER[REMOTE_ADDR]);
}
$_SGLOBAL[onlineip] = get_real_ip();

Discuz!使用CDN后獲取真實(shí)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 (!eregi ("^(10|172.16|192.168).", $ips[$i]))
{
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_SERVER[REMOTE_ADDR]);
}
$onlineip = get_real_ip();

帝國(guó)cms后臺(tái)記錄的ip日志和用戶注冊(cè)記錄的ip

eclassconnect.php搜索function egetip()函數(shù)中的獲取ip代碼修改成以上部分

DZ注冊(cè)用戶IP和邀請(qǐng)碼擁有者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網(wǎng)站如何取到用戶真實(shí)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()取真實(shí)IP函數(shù),先 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種方法

服務(wù)端:

//方法一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();

//方法四(無(wú)視代理)HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

客戶端:

//方法五

var ip =;

alert("Your IP address is "+ip);

//方法六(無(wú)視代理)

function GetLocalIPAddress() { 
    var obj =null
    var rslt =""; 
    try
        obj =new ActiveXObject("rcbdyctl.Setting"); 
        rslt = obj.GetIPAddress; 
        obj =null
    }catch(e) 
    { 
        //    }return rslt; 
   }

來(lái)自印度的MCT Maulik Patel提供了一種服務(wù)端的解決方案,很好:

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 cant get the Client IP
     ip=Context.Request.ServerVariables["REMOTE_ADDR"].ToString(); 

//While it cant get the Client IP, it will return proxy IP.}

備注:

1. 有些代理是不會(huì)發(fā)給我們真實(shí)IP地址的

2. 有些客戶端會(huì)因?yàn)椤癶eader_access deny”的安全設(shè)置而不發(fā)給我們IP

提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: