专注.NET技术及其相关应用开发!

给我一个机会,还你一个惊喜!用这个机会创造出更多的价值!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
/// <summary> ......
/// <summary>
/// 获取当前请求的IP地址
/// </summary>
/// <returns></returns>
public static string GetIP()
{
   //获取IP地址
   HttpRequest request = HttpContext.Current.Request;
   string ipAddress=string.Empty;
   if(request.ServerVariables["HTTP_X_FORWARDED_FOR"]==null || request.ServerVariables["HTTP_X_FORWARDED_FOR"]=="")
   {
      ipAddress = request.ServerVariables["REMOTE_ADDR"];
   }
   else if(request.ServerVariables["HTTP_X_FORWARDED_FOR"].IndexOf(",")>=0)
   {
      int index = request.ServerVariables["HTTP_X_FORWARDED_FOR"].IndexOf(",");
      ipAddress = request.ServerVariables["HTTP_X_FORWARDED_FOR"].Substring(0,index-1);
   }
   else if(request.ServerVariables["HTTP_X_FORWARDED_FOR"].IndexOf(";")>=0)
   {
      int index = request.ServerVariables["HTTP_X_FORWARDED_FOR"].IndexOf(";");
      ipAddress = request.ServerVariables["HTTP_X_FORWARDED_FOR"].Substring(0,index-1);
   }
   else
   {
      ipAddress = request.ServerVariables["HTTP_X_FORWARDED_FOR"];
   }
   if(ipAddress=="127.0.0.1")
   {
      ipAddress = GetLocalhostIPAddress();
   }
   return ipAddress;
}
/// <summary>
/// 获取本机IP
/// </summary>
/// <returns></returns>
private static string GetLocalhostIPAddress()
{
   string hostName = System.Net.Dns.GetHostName();
   System.Net.IPHostEntry hostInfo =System.Net.Dns.GetHostByName(hostName);
   System.Net.IPAddress[]  IpAddr = hostInfo.AddressList; 
   string localIP = string.Empty;
   for (int i = 0; i < IpAddr.Length; i++)
   {
      localIP += IpAddr[i].ToString();
   } 
   return localIP;                      
}
以上获取的IP地址有可能会使代理服务器的IP。

posted on 2006-10-16 17:13  婕舞飞扬  阅读(1876)  评论(1编辑  收藏  举报