位置:海鸟网 > IT > JavaScript >

内外网同时访问问题:判断访问计算机IP

    我在内网搭了两个服务器,一个数据库服务器,一个Web服务器。并且让网管影射个外网IP给Web服务器,使得外网内网可以同时访问。但这样产生了个问题,Web服务器取数据是用内网的相对地址,这样外网访问时就得不到数据,只能显示框架。要是把数据库服务器也映射了的话,那么内网就不能访问了,这样我就没办法调试了。如果把两个服务器合为一个,那么运行的速度就会受到影响,而现在老板也不想再往里投钱,毕竟只是一个演示。而把两台机子搬到实验室的网络机房直接接到外网上也可以解决,但是网络机房是封闭的,有门禁卡,这样我就没办法经常进去修改。

  仔细想了一下,觉得做个判断应该可以解决这个问题,只要判断访问的是内网IP还是外网IP,依据判断来进行对应的操作

  查了查资料发现用JS不错,因为JS 获取的 IP 有个优点就是它获取的是本机设置的 IP,如果计算机通过局域网上网,那么它获得的就是计算机的局域网 IP,而不像 ASP 中 Request 获取的是计算机连接到互联网的 IP。

  代码(是从别人那抄来的,不过可以参考一下:) 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JS获取客户端IP</title>
</head>
<body>
<script type="text/javascript" language="javascript">
<!--
function GetLocalIPAddress()
{
    var obj = null;
    var rslt = "";
    try
    {
        obj = new ActiveXObject("rcbdyctl.Setting");
        rslt = obj.GetIPAddress;
        obj = null;
    }
    catch(e)
    {
        //异常发生
    }    
    return rslt;
}
document.write("你的IP是:" + GetLocalIPAddress());
//-->
</script>
</body>
</html>
据说在使用中可能会出现警告,不过这只是测试,应该不碍事的,呵呵:)