码迷,mamicode.com
首页 > Web开发 > 详细

ASP.NET获取IP的6种方法(转载于LanceZhang's Tech Blog)

时间:2014-08-15 17:31:39      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   for   ar   

服务端:

 1 //方法一
 2 HttpContext.Current.Request.UserHostAddress; 
 3 
 4 //方法二
 5 HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
 6 
 7 //方法三
 8 string strHostName = System.Net.Dns.GetHostName();
 9 string clientIPAddress = System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString();
10 
11 //方法四(无视代理)
12 HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

 

客户端:

 1 //方法五
 2 var ip = <!--#echo var="REMOTE_ADDR"-->;
 3 alert("Your IP address is "+ip);
 4 
 5 
 6 
 7 //方法六(无视代理)
 8 function GetLocalIPAddress() 
 9 { 
10     var obj = null; 
11     var rslt = ""; 
12     try 
13     { 
14         obj = new ActiveXObject("rcbdyctl.Setting"); 
15         rslt = obj.GetIPAddress; 
16         obj = null; 
17     } 
18     catch(e) 
19     { 
20         // 
21     }
22     return rslt; 
23 }

 

来自印度的MCT Maulik Patel提供的一种服务端解决方案:

1 if(Context.Request.ServerVariables["HTTP_VIA"]!=null) // using proxy
2 { 
3      ip=Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();  // Return real client IP.
4 }
5 else// not using proxy or can‘t get the Client IP
6 { 
7      ip=Context.Request.ServerVariables["REMOTE_ADDR"].ToString(); //While it can‘t get the Client IP, it will return proxy IP.
9 }

 

备注:

  1. 有些代理是不会发给我们真实IP地址的。
  2. 有些客户端会因为“header_access deny”的安全设置而不发给我们IP。

ASP.NET获取IP的6种方法(转载于LanceZhang's Tech Blog),布布扣,bubuko.com

ASP.NET获取IP的6种方法(转载于LanceZhang's Tech Blog)

标签:style   blog   http   color   os   io   for   ar   

原文地址:http://www.cnblogs.com/IamYoung/p/3915230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!