• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NET获取IP的6种方法(转)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

原文转自:http://www.cnblogs.com/blodfox777/archive/2008/07/21/1247447.html

 

服务端:

 1 //方法一
 2 
 3 HttpContext.Current.Request.UserHostAddress; 
 4 
 5 //方法二
 6 HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
 7 
 8 //方法三
 9 string strHostName = System.Net.Dns.GetHostName();
10 
11 string clientIPAddress = System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString();
12 
13 //方法四(无视代理)
14 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 function GetLocalIPAddress() 
 8 { 
 9     var obj = null; 
10     var rslt = ""; 
11     try 
12     { 
13         obj = new ActiveXObject("rcbdyctl.Setting"); 
14         rslt = obj.GetIPAddress; 
15         obj = null; 
16     } 
17 
18     catch(e) 
19     { 
20     } 
21 
22     return rslt; 
23  }

另一种服务端的解决方案:

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

 

备注:

 

1. 有些代理是不会发给我们真实IP地址的

2. 有些客户端会因为“header_access deny”的安全设置而不发给我们IP


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
为ASP.NET MVC扩展异步Action功能(下)发布时间:2022-07-10
下一篇:
AutofacASP.NETWebAPI(Beta)Integration发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap