king

ASP.NET获取IP的几种方法

king web技术 2018-05-18 2272浏览 0

方法一

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; 

   } 

来自印度的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.

}


发表评论