//方法五 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. }