//方法一
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"];

//方法五
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

posted on 2010-09-23 10:43  wbscn  阅读(262)  评论(0编辑  收藏  举报