在别的服务器上用以下方法可以轻松实现获取客户端IP HttpContext.Current.Request.ServerVariables.GetValues("REMOTE_ADDR")[0].ToString();
HttpContext.Current.Request.UserHostAddress;
HttpContext.Current.Request.ServerVariables["Http_X_Forwarded_For"];
但不晓得我们公司的服务器防火墙咋搞的,取出来全是127.0.0.1所以我想用JS来实现取客户端IP,用<OBJECT id="locator" classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" VIEWASTEXT>
</OBJECT>
<OBJECT id="foo" classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" VIEWASTEXT>
</OBJECT>
两个ActiveX可以实现,但要客户端允许运行ActiveX 郁闷..............
HttpContext.Current.Request.UserHostAddress;
HttpContext.Current.Request.ServerVariables["Http_X_Forwarded_For"];
但不晓得我们公司的服务器防火墙咋搞的,取出来全是127.0.0.1所以我想用JS来实现取客户端IP,用<OBJECT id="locator" classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" VIEWASTEXT>
</OBJECT>
<OBJECT id="foo" classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" VIEWASTEXT>
</OBJECT>
两个ActiveX可以实现,但要客户端允许运行ActiveX 郁闷..............
var obj = new ActiveXObject("rcbdyctl.Setting");
ip = obj.GetIPAddress;
obj = null; 不运行这些是不可能取到的.
{
lIp = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
lIp = Request.ServerVariables["REMOTE_ADDR"].ToString();
}
試下這個
var ip = "";
var obj = new ActiveXObject("rcbdyctl.Setting");
ip = obj.GetIPAddress;
obj = null;
用这种方法出现这样的错误是怎么回事错误:Automaion服务器不能创建对象
我搜了一下说是要要注册一个Dllregsvr32 scrrun.dll但我注册了,一样不行同样谢谢fcuandy
把你的浏览器的安全级别调低一点就ok了
可能就只有ActiveX了
而且OBJECT id="locator" classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" VIEWASTEXT>
这个ActiveX大部分机器都自动装有
别人都可以通过JS搞个病毒在我机子上运行,怎么我想用JS取IP就不行呢,太不公平了
public string GetIP()
{
string ip=""; if (Request.ServerVariables["Http_X_ForWarded_For"] != null)
{
ip = Request.ServerVariables["Http_X_ForWarded_For"].ToString();
} if(ip=="")
{
if (Request.ServerVariables["Remote_Addr"]!= null)
{
ip = Request.ServerVariables["Remote_Addr"].ToString();
}
} return ip;
}
而且没设ip的,IP还会变
不知道用来干嘛
我做了个页面放到别的服务器上去,在客户端请求返回IP来不过不晓得有没有什么方法能取出客户端内网的IP或者计算机名(非公网计算机)