在web程序中,如何获取客户端的ip地址?有相关的代码吗?

解决方案 »

  1.   

    这样可以吗?Request.UserHostAddress.ToString();
      

  2.   

    1. 在ASP.NET中专用属性: 
            获取服务器电脑名:Page.Server.ManchineName 
            获取用户信息:Page.User 
            获取客户端电脑名:Page.Request.UserHostName 
            获取客户端电脑IP:Page.Request.UserHostAddress 
            2. 在网络编程中的通用方法: 
            获取当前电脑名:static System.Net.Dns.GetHostName() 
            根据电脑名取出全部IP地址:static System.Net.Dns.Resolve(电脑名).AddressList 
            也可根据IP地址取出电脑名:static System.Net.Dns.Resolve(IP地址).HostName 
            3. 系统环境类的通用属性: 
            当前电脑名:static System.Environment.MachineName 
            当前电脑所属网域:static System.Environment.UserDomainName 
            当前电脑用户:static System.Environment.UserName              举例子来说明:              using System.Net; 
                  private void ButtonIP_Click(object sender, System.EventArgs e) 
                  {  
                      System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList; 
                      if (addressList.Length>1) 
                      {   
                          TextLIP.Text = addressList[0].ToString(); 
                          TextSIP.Text = addressList[1].ToString(); 
                      } 
                     else 
                     { 
                          TextLIP.Text = addressList[0].ToString(); 
                          TextSIP.Text = "没有可用的连接"; 
                     }
                 }
      

  3.   

    string userip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
    if (userip.Length == 0)
    {
        userip = Request.ServerVariables["REMOTE_ADDR"].ToString(); 
    }
      

  4.   

    Request.UserHostAddress.ToString().Trim();
      

  5.   

    string user_ip;
     user_ip = Request.ServerVariables.Get("REMOTE_ADDR").ToString();
     //<==>  user_ip = Request.ServerVariables["REMOTE_ADDR"].ToString();
     Response.Write(user_ip);方法二:
    Response.Write (Request.UserHostAddress);
    或者:
    Response.Write (Request.UserHostName);以上有时并不准确,因为有的使用代理服务器,那样的话,取的将是代理服务器的ip地址!
    下面是做判断的:
    if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] == null)
      Response.Write (Request.ServerVariables["REMOTE_ADDR"].ToString());
    else
      Response.Write (Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString());