熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

asp獲取用戶真實IP地址的方法

2013-11-13 10:45:36  來源: .NET編程 

  一般的程序都具備獲取用戶IP地址的命令但是我們訪問網站有兩種一種是我們這種普通用戶一種是使用代理IP上網的用戶下面我來介紹介紹

 

  在asp中獲取用戶IP地址我們最簡單的獲取方法就是使用

 代碼如下  

  RequestServerVariables("REMOTE_ADDR")

  但是如果用戶使用了代理服務器IP地址就不對了但我們可通過

 代碼如下  

  RequestServerVariables("REMOTE_ADDR")

  結果上面的兩個獲取IP的方法我們可如下操作

 代碼如下  

  userip = RequestServerVariables("HTTP_X_FORWARDED_FOR")

  If userip = "" Then userip = RequestServerVariables("REMOTE_ADDR")

  上面的只是一個簡單的判斷方法在實際應用中我們可能碰到的情況更多下面看一個不錯的實例

 代碼如下  

  <%Private Function getIP() 
Dim strIPAddr 
If RequestServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(RequestServerVariables("HTTP_X_FORWARDED_FOR") "unknown") > Then 
strIPAddr = RequestServerVariables("REMOTE_ADDR") 
ElseIf InStr(RequestServerVariables("HTTP_X_FORWARDED_FOR") "") > Then 
strIPAddr = Mid(RequestServerVariables("HTTP_X_FORWARDED_FOR") InStr(RequestServerVariables("HTTP_X_FORWARDED_FOR") "")
ElseIf InStr(RequestServerVariables("HTTP_X_FORWARDED_FOR") ";") > Then 
strIPAddr = Mid(RequestServerVariables("HTTP_X_FORWARDED_FOR") InStr(RequestServerVariables("HTTP_X_FORWARDED_FOR") ";")
Else 
strIPAddr = RequestServerVariables("HTTP_X_FORWARDED_FOR") 
End If 
getIP = Trim(Mid(strIPAddr )) 
End Function 
ip=getIP() 
responsewrite(ip) 
%>

  這樣幾乎可以獲取到用戶真實IP地址了但是也不能保存所有代理的都能獲取到了只是大家都使用上面的方法

  如果有使用aspnet的朋友可參考下面方法來獲取

 代碼如下  

  //方法一
HttpContextCurrentRequestUserHostAddress;

  //方法二
HttpContextCurrentRequestServerVariables["REMOTE_ADDR"];

  //方法三
string strHostName = SystemNetDnsGetHostName();
string clientIPAddress = SystemNetDnsGetHostAddresses(strHostName)GetValue()ToString();

  //方法四(無視代理)
HttpContextCurrentRequestServerVariables["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("rcbdyctlSetting"); 
        rslt = objGetIPAddress; 
        obj = null; 
    } 
    catch(e) 
    { 
        // 
    } 
     
    return rslt; 
}


From:http://tw.wingwit.com/Article/program/net/201311/14451.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.