国产老熟女高潮毛片A片仙踪林,欧美喂奶吃大乳,狠狠爱无码一区二区三区,女神的私人医生动漫免费阅读

新聞建站cms系統、政府cms系統定制開發

廣州網站建設公司-閱速公司

asp.net新聞發布系統、報紙數字報系統方案
/
http://www.tjsimaide.com/
廣州網站建設公司
您當前位置:首頁>ASP.NET MVC

ASP.NET MVC

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

發布時間:2019/6/3 12:02:44  作者:Admin  閱讀:415  

廣告:

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

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;

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

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

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欺騙它。

下面是我在真實測試結果

實驗代碼非常簡單

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>

環境一 : 本地不使用代理;服務器網站不使用CDN加速;

結果一:

環境二 : 本地使用普通透明代理;服務器網站不使用CDN加速;

結果二:

環境三: 本地使用高度匿名代理;服務器網站不使用CDN加速;

結果三:

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

環境四: 本地不使用任何代理;服務器網站通過CDN加速;

結果四:

從結果四中看到:HTTP_VIA 終于不為空了,有個域名可以得出IP,證明了該值不確定性,由本人不太了解代理服務器架構,大致猜測出 這項值應該是代理服務器自己寫的值。

環境五:本地使用透明代理;服務器網站通過CDN加速;

結果五:

從環境五中 實際行成了一個 多層代理結果。這時如果通HTTP_X_FORWARDED_FOR獲取IP,需要分組 取一。

環境六:本地使用高度匿名代理;服務器網站通過CDN加速;

結果六:

到此總結 結論如下:

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

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

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

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

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

廣告:

相關文章
IP地址
ASP.NET
cms新聞系統購買咨詢
掃描關注 廣州閱速軟件科技有限公司
掃描關注 廣州閱速科技
主站蜘蛛池模板: 板桥市| 西乡县| 麻江县| 赤峰市| 岢岚县| 泾阳县| 韶关市| 江都市| 霍城县| 铜梁县| 龙岩市| 台南市| 梓潼县| 大洼县| 广平县| 清水河县| 葫芦岛市| 西吉县| 株洲县| 佳木斯市| 望城县| 肇东市| 称多县| 南平市| 大同市| 柳州市| 滦平县| 固安县| 郓城县| 象山县| 吉木乃县| 湾仔区| 鄄城县| 新郑市| 罗源县| 梁河县| 宜丰县| 阿瓦提县| 正蓝旗| 稷山县| 健康|