首页 > 代码库 > ASP.NET获取IP的6种方法(转载于LanceZhang's Tech Blog)
ASP.NET获取IP的6种方法(转载于LanceZhang's Tech Blog)
服务端:
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 proxy2 { 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 IP6 { 7 ip=Context.Request.ServerVariables["REMOTE_ADDR"].ToString(); //While it can‘t get the Client IP, it will return proxy IP.9 }
备注:
- 有些代理是不会发给我们真实IP地址的。
- 有些客户端会因为“header_access deny”的安全设置而不发给我们IP。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。