来自于:婕舞飞扬

    1. /// <summary> ......
    2. /// <summary>
    3. /// 获取当前请求的IP地址
    4. /// </summary>
    5. /// <returns></returns>
    6. public static string GetIP()
    7. {
    8. //获取IP地址
    9. HttpRequest request = HttpContext.Current.Request;
    10. string ipAddress=string.Empty;
    11. if(request.ServerVariables["HTTP_X_FORWARDED_FOR"]==null || request.ServerVariables["HTTP_X_FORWARDED_FOR"]=="")
    12. {
    13. ipAddress = request.ServerVariables["REMOTE_ADDR"];
    14. }
    15. else if(request.ServerVariables["HTTP_X_FORWARDED_FOR"].IndexOf(",")>=0)
    16. {
    17. int index = request.ServerVariables["HTTP_X_FORWARDED_FOR"].IndexOf(",");
    18. ipAddress = request.ServerVariables["HTTP_X_FORWARDED_FOR"].Substring(0,index-1);
    19. }
    20. else if(request.ServerVariables["HTTP_X_FORWARDED_FOR"].IndexOf(";")>=0)
    21. {
    22. int index = request.ServerVariables["HTTP_X_FORWARDED_FOR"].IndexOf(";");
    23. ipAddress = request.ServerVariables["HTTP_X_FORWARDED_FOR"].Substring(0,index-1);
    24. }
    25. else
    26. {
    27. ipAddress = request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    28. }
    29. if(ipAddress=="127.0.0.1")
    30. {
    31. ipAddress = GetLocalhostIPAddress();
    32. }
    33. return ipAddress;
    34. }
    35. /// <summary>
    36. /// 获取本机IP
    37. /// </summary>
    38. /// <returns></returns>
    39. private static string GetLocalhostIPAddress()
    40. {
    41. string hostName = System.Net.Dns.GetHostName();
    42. System.Net.IPHostEntry hostInfo =System.Net.Dns.GetHostByName(hostName);
    43. System.Net.IPAddress[] IpAddr = hostInfo.AddressList;
    44. string localIP = string.Empty;
    45. for (int i = 0; i < IpAddr.Length; i++)
    46. {
    47. localIP += IpAddr[i].ToString();
    48. }
    49. return localIP;
    50. }

    以上获取的IP地址有可能会使代理服务器的IP

    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