中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

使用CDN后,獲取真實(shí)IP辦法 (127.0.0.1)

    虛擬主機(jī)登錄會(huì)員或登錄后臺(tái)管理,一般都會(huì)獲取用戶客戶端地址并記錄數(shù)據(jù)庫.但相同程序部署我司虛擬主機(jī)后,獲取客戶端地址不是用戶真實(shí)ip地址或?yàn)?"127.0.0.1",可以通過以下方式修改獲取客戶ip地址部分代碼解決.


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(!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后獲取真實(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(!preg_match("/^(10|172\.16|192\.168)\./", $ $ips[$i]))

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



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

\e\class\connect.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();

//方法四(無視代理)
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提供了一種服務(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 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. 有些代理是不會(huì)發(fā)給我們真實(shí)IP地址的

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

net的也可以參考http://www.cdnunion.com/articleinfo.php?pid=158設(shè)置


編輯:西部數(shù)碼
日期:2010-02-25

收藏 】 【 打印 】   
您可對(duì)文檔進(jìn)行評(píng)分喲~

勾選遇到的問題提交給我們,收到反饋后保證及時(shí)修正更新!

提交反饋需要先登陸會(huì)員帳號(hào)

上一篇:關(guān)于虛擬主機(jī)試用的常見問題
下一篇:vps、彈性云重裝后找回D盤(適用windows系統(tǒng))
若文檔內(nèi)容對(duì)您沒有幫助,不能解決問題? 您還可以 咨詢?cè)诰客服提交工單搜索常見問題 ,我們將竭誠為您服務(wù)。
  >> 相關(guān)文章
 
分享至:
Top

24小時(shí)客服熱線

400-028-5800

028-62778877

您好,非正常上班時(shí)間若有緊急技術(shù)問題,請(qǐng)撥總機(jī)后按7號(hào)鍵, 其他問題請(qǐng)?zhí)峤还位蛟谏习鄷r(shí)間聯(lián)系,謝謝支持!