程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> asp獲取用戶真實IP地址的方法

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

編輯:關於ASP編程

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

     

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

     代碼如下  

    Request.ServerVariables("REMOTE_ADDR")

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

     代碼如下  

    Request.ServerVariables("REMOTE_ADDR")

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

     代碼如下  

    userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")

    If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")

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

     代碼如下  

    <%Private Function getIP() 
    Dim strIPAddr 
    If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then 
    strIPAddr = Request.ServerVariables("REMOTE_ADDR") 
    ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then 
    strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1) 
    ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then 
    strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1) 
    Else 
    strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR") 
    End If 
    getIP = Trim(Mid(strIPAddr, 1, 30)) 
    End Function 
    ip=getIP() 
    response.write(ip) 
    %>

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

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

     代碼如下  

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

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved