ASP.NET获取IP的6种方法

    技术2026-09-10  14

    ASP.NET获取IP的6种方法

      (2008-11-10 10:17:18) 转载 // 方法一 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 " ];

     

    客户端:

     

     

    // 方法五 var  ip  =   ' <!--#echo var="REMOTE_ADDR"--> ' ;alert( " Your IP address is  " + ip); // 方法六(无视代理) function  GetLocalIPAddress()  {     var obj = null;     var rslt = "";     try     {         obj = new ActiveXObject("rcbdyctl.Setting");         rslt = obj.GetIPAddress;         obj = null;     }     catch(e)     {         //     }          return rslt; }  

     

    22日添加:

     

    来自印度的MCT Maulik Patel提供了一种服务端的解决方案,很好:

     

     

    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

    最新回复(0)