最大限度獲取遠程用戶真實IP地址

 

 

看到一篇關於獲得客戶端真實IP地址的文章《穿過代理服務器取遠程用戶真實IP地址》,但我認爲改爲《最大限度獲取遠程用戶真實IP地址》更爲合適,原因:

/// <summary>
/// 最大限度獲取遠程用戶真實IP地址
/// </summary>
/// <returns></returns>

private string GetClientIP()
{
     
if(Request.ServerVariables["HTTP_VIA"]!=null)
    
{
        
return Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
    }

    
else
    
{
         
return Request.ServerVariables["REMOTE_ADDR"].ToString();
    }

}

http代理相關知識

HTTP_X_FORWARDED_FOR 

如果有該條信息, 也證明了您使用了代理服務器代理服務器的地址就是後面的數值。

需要注意的,HTTP_X_FORWARDED_FOR  的值,並不一定是隻有一個IP地址,下面的信息也是可能的,每行一條記錄。下面數據取材於CSDN 實際的數據。
10.194.73.11
unknown, unknown, 211.100.22.30
203.98.182.163, 203.98.182.163, 203.129.72.215
172.16.20.110, 202.116.64.196, 203.81.21.61
10.194.75.83, 10.194.73.11, 10.194.73.11, unknown
192.168.120.57, unknown, unknown, 211.10.10.195
10.2.4.211, 219.141.250.3
3.242.165.168, 218.108.22.164
unknown, 211.100.22.30
192.168.83.56, 210.21.224.233
218.94.136.176, 203.81.21.61
unknown, 210.75.1.181
10.161.196.218, 202.104.134.23
222.216.6.148, 222.216.6.146
155.161.59.47, unknown

關鍵就在HTTP_X_FORWARDED_FOR
使用不同種類代理服務器,上面的信息會有所不同:

一、沒有使用代理服務器的情況:

      REMOTE_ADDR = 您的 IP
      HTTP_VIA = 沒數值或不顯示
      HTTP_X_FORWARDED_FOR = 沒數值或不顯示

二、使用透明代理服務器的情況:Transparent Proxies

      REMOTE_ADDR = 最後一個代理服務器 IP
      HTTP_VIA = 代理服務器 IP
      HTTP_X_FORWARDED_FOR = 您的真實 IP ,經過多個代理服務器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   這類代理服務器還是將您的信息轉發給您的訪問對象,無法達到隱藏真實身份的目的。

三、使用普通匿名代理服務器的情況:Anonymous Proxies

      REMOTE_ADDR = 最後一個代理服務器 IP
      HTTP_VIA = 代理服務器 IP
      HTTP_X_FORWARDED_FOR = 代理服務器 IP ,經過多個代理服務器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   隱藏了您的真實IP,但是向訪問對象透露了您是使用代理服務器訪問他們的。

四、使用欺騙性代理服務器的情況:Distorting Proxies

      REMOTE_ADDR = 代理服務器 IP
      HTTP_VIA = 代理服務器 IP
      HTTP_X_FORWARDED_FOR = 隨機的 IP ,經過多個代理服務器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   告訴了訪問對象您使用了代理服務器,但編造了一個虛假的隨機IP代替您的真實IP欺騙它。

五、使用高匿名代理服務器的情況:High Anonymity Proxies (Elite proxies)

      REMOTE_ADDR = 代理服務器 IP
      HTTP_VIA = 沒數值或不顯示
      HTTP_X_FORWARDED_FOR = 沒數值或不顯示 ,經過多個代理服務器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   完全用代理服務器的信息替代了您的所有信息,就象您就是完全使用那臺代理服務器直接訪問對象。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章