人妻无码中文字幕永久在线,99RE6这里有精品热视频,国产成人综合色就色综合 ,蜜臀av在线观看

新聞建站cms系統(tǒng)、政府cms系統(tǒng)定制開發(fā)

廣州網(wǎng)站建設(shè)公司-閱速公司

asp.net新聞發(fā)布系統(tǒng)、報(bào)紙數(shù)字報(bào)系統(tǒng)方案
/
http://www.jdki.com.cn/
廣州網(wǎng)站建設(shè)公司
您當(dāng)前位置:首頁>ASP.NET MVC

ASP.NET MVC

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

發(fā)布時(shí)間:2019/6/3 12:02:44  作者:Admin  閱讀:417  

廣告:

說到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í)測一下。 歡迎指正錯誤。

廣告:

相關(guān)文章
IP地址
ASP.NET
cms新聞系統(tǒng)購買咨詢
掃描關(guān)注 廣州閱速軟件科技有限公司
掃描關(guān)注 廣州閱速科技