.net获取IP地址的几种方法--转载

it2024-12-06  30

 

服务端:

 

 

// 方法一 HttpContext.Current.Request.UserHostAddress;  // 方法二 HttpContext.Current.Request.ServerVariables[ " REMOTE_ADDR " ]; // 方法三 string  strHostName  =  System.Net.Dns.GetHostName(); string  clientIPAddress  =  System.Net.Dns.GetHostAddresses(strHostName).GetValue( 0 ).ToString(); // 方法四(无视代理) HttpContext.Current.Request.ServerVariables[ " HTTP_X_FORWARDED_FOR " ];

 

客户端:

 

 

// 方法五 var  ip  =  ' <!--#echo var="REMOTE_ADDR"--> ' ;alert( " Your IP address is  " + ip); // 方法六(无视代理) function  GetLocalIPAddress()  {     var obj = null;     var rslt = "";     try     {         obj = new ActiveXObject("rcbdyctl.Setting");         rslt = obj.GetIPAddress;         obj = null;     }     catch(e)     {         //     }          return rslt; }

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

 

 

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

备注:

 

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

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

转载于:https://www.cnblogs.com/_zjl/archive/2011/04/09/2010523.html

最新回复(0)