日本乱理伦片在线观看真_久久国产综合精品swag_日本护士高清喷水_久久久噜噜噜久久中文_国内真实愉拍系列在线

首頁  >  新聞動(dòng)態(tài)  > 常見問題

ASP.NET 中獲取客戶端IP地址

說到IP獲取無非是我們常見的以下幾種方式,但是具體獲取的值具體區(qū)別在哪?網(wǎng)上不乏相關(guān)文章,說的也是很詳細(xì),但是真正使用起來,還有很多不太對的地方。IP在不同系統(tǒng)中,應(yīng)用相當(dāng)廣泛,常見的日志記錄、廣告分區(qū)域投放等。

1: HttpContext.Current.Request.ServerVariables["HTTP_VIA"];

2: HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

3: HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

4: HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"];

5: HttpContext.Current.Request.UserHostAddress;

針對以上五項(xiàng)獲取IP的值其代表意思,Google一下后有人在博客中做了詳情說明,其中我找了一篇發(fā)布最早的,最原始是http://www.cnblogs.com/yejun/archive/2008/02/26/1082485.html拿來參考,有多好轉(zhuǎn)載這個(gè)的,然后加工了一下文章。在此我先引用一下該文章的內(nèi)容便于閱讀。

一、沒有使用代理服務(wù)器的情況:

REMOTE_ADDR = 用戶的 IP

HTTP_VIA = 沒數(shù)值或不顯示

HTTP_X_FORWARDED_FOR = 沒數(shù)值或不顯示

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

REMOTE_ADDR = 最后一個(gè)代理服務(wù)器 IP

HTTP_VIA = 代理服務(wù)器 IP

HTTP_X_FORWARDED_FOR = 用戶的真實(shí) IP ,經(jīng)過多個(gè)代理服務(wù)器時(shí),這個(gè)值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

這類代理服務(wù)器還是將您的信息轉(zhuǎn)發(fā)給您的訪問對象,無法達(dá)到隱藏真實(shí)身份的目的。

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

REMOTE_ADDR = 最后一個(gè)代理服務(wù)器 IP

HTTP_VIA = 代理服務(wù)器 IP

HTTP_X_FORWARDED_FOR = 代理服務(wù)器 IP ,經(jīng)過多個(gè)代理服務(wù)器時(shí),這個(gè)值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

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

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

REMOTE_ADDR = 代理服務(wù)器 IP

HTTP_VIA = 代理服務(wù)器 IP

HTTP_X_FORWARDED_FOR = 隨機(jī)的 IP ,經(jīng)過多個(gè)代理服務(wù)器時(shí),這個(gè)值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

告訴了訪問對象您使用了代理服務(wù)器,但編造了一個(gè)虛假的隨機(jī)IP代替您的真實(shí)IP欺騙它。

下面是我在真實(shí)測試結(jié)果

實(shí)驗(yàn)代碼非常簡單

1: <%@ Page Language="C#" %>

2: <!DOCTYPE html>

3: <script runat="server">

4: protected override void OnLoad(EventArgs e)

5: {

6: lblHTTP_VIA.Text="HTTP_VIA:"+HttpContext.Current.Request.ServerVariables["HTTP_VIA"];

7: lblHTTP_X_FORWARDED_FOR.Text="HTTP_X_FORWARDED_FOR:"+HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

8: lblREMOTE_ADDR.Text = "REMOTE_ADDR:"+HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

9: lblHTTP_CLIENT_IP.Text="HTTP_CLIENT_IP:"+HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"];

10: lblUserHostAddress.Text="HttpContext.Current.Request.UserHostAddress:"+HttpContext.Current.Request.UserHostAddress;

11: base.OnLoad(e);

12: }

13: </script>

14: <head>

15: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

16: <title></title>

17: </head>

18: <body>

19: <form id="form1" runat="server">

20: <asp:Label ID="lblREMOTE_ADDR" runat="server"></asp:Label><br />

21: <asp:Label ID="lblHTTP_VIA" runat="server"></asp:Label><br />

22: <asp:Label ID="lblHTTP_X_FORWARDED_FOR" runat="server"></asp:Label><br />

23: <asp:Label ID="lblHTTP_CLIENT_IP" runat="server"></asp:Label><br />

24: <asp:Label ID="lblUserHostAddress" runat="server"></asp:Label><br />

25: </form>

26: </body>

27: </html>

環(huán)境一 : 本地不使用代理;服務(wù)器網(wǎng)站不使用CDN加速;

結(jié)果一:

環(huán)境二 : 本地使用普通透明代理;服務(wù)器網(wǎng)站不使用CDN加速;

結(jié)果二:

環(huán)境三: 本地使用高度匿名代理;服務(wù)器網(wǎng)站不使用CDN加速;

結(jié)果三:

從結(jié)果二 和 結(jié)果三中證明:HTTP_VIA 的值并非代理IP,直接是空值(可見上述引用的文章描述至少不夠正確),那什么時(shí)候不為空呢?請接著往下看.

環(huán)境四: 本地不使用任何代理;服務(wù)器網(wǎng)站通過CDN加速;

結(jié)果四:

從結(jié)果四中看到:HTTP_VIA 終于不為空了,有個(gè)域名可以得出IP,證明了該值不確定性,由本人不太了解代理服務(wù)器架構(gòu),大致猜測出 這項(xiàng)值應(yīng)該是代理服務(wù)器自己寫的值。

環(huán)境五:本地使用透明代理;服務(wù)器網(wǎng)站通過CDN加速;

結(jié)果五:

從環(huán)境五中 實(shí)際行成了一個(gè) 多層代理結(jié)果。這時(shí)如果通HTTP_X_FORWARDED_FOR獲取IP,需要分組 取一。

環(huán)境六:本地使用高度匿名代理;服務(wù)器網(wǎng)站通過CDN加速;

結(jié)果六:

到此總結(jié) 結(jié)論如下:

一、Request.ServerVariables["REMOTE_ADR"]:的值始終等于 Request.UserHostAddress。

二、Request.ServerVariables["HTTP_CLIENT_IP"]:的值始終等于空。

三、Request.ServerVariables["HTTP_VIA"]:的值就是CDN商。

四、Request.ServerVariables["HTTP_X_FORWARDED_FOR"]:為代理IP,多層代理將有多個(gè)IP,最前面為原始IP。

好吧,所有結(jié)果說明一切。你需要簡單獲取IP,還是盡量獲取原始IP,就看你怎么取值了。這里我自己走了不少彎路,所以配個(gè)環(huán)境實(shí)測一下。 歡迎指正錯(cuò)誤。

相關(guān)文章
客戶端
http://m.huimenpiao.org.cn/pics/2022/11/c202211101c1cc56fd0d04cb29ced53c513de8175.png
閱速CMS系統(tǒng)提供用戶體驗(yàn)更佳的國內(nèi)Cms軟件
ASP.NET 中獲取客戶端IP地址