怎样获取访问者的IP,IE版本号,计算机名.

本文介绍了一种在.NET环境中获取客户端IP地址的方法,包括通过HTTP请求获取真实IP及本机IP地址的技术细节。该方法首先尝试从代理头信息中获取IP,如果不可用则直接从远程地址中获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/// <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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值