ASP.NET获取IP的6种方法(转载于LanceZhang's Tech Blog)_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > ASP.NET获取IP的6种方法(转载于LanceZhang's Tech Blog)

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

 2014/8/15 18:34:21  Kin_Pun  程序员俱乐部  我要评论(0)
  • 摘要:服务端:1//方法一2HttpContext.Current.Request.UserHostAddress;34//方法二5HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];67//方法三8stringstrHostName=System.Net.Dns.GetHostName();9stringclientIPAddress=System.Net.Dns.GetHostAddresses(strHostName)
  • 标签:.net ASP.NET 方法 net

服务端

 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。
  • 相关文章
发表评论
用户名: 匿名