公司内部局域网使用的JSP开发的系统,想限制一些部门电脑访问,如果只通过request.getRemoteAddr来检验IP的合法性,那完全可以通过IP来突破限制。
请问各位高手有什么好的方法?

解决方案 »

  1.   

    电脑硬件的特征
    除了ip地址就只有mac地址了呵
    没听说过Java能抓Mac地址除非你的Web服务器跟dhcp服务器通讯,根据客户端的IP地址从DHCP服务器获得它的Mac地址
      

  2.   

    mac倒是也可以用RunTime来获取,只是可能效率太低
      

  3.   

    公司的就应该固定IP吧,那把IP段在特定的限制行不。。
      

  4.   


    <SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
        document.forms[0].txtMACAddr.value=unescape(MACAddr);
        document.forms[0].txtIPAddr.value=unescape(IPAddr);
        document.forms[0].txtDNSName.value=unescape(sDNSName);
    </SCRIPT>
    <SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
       if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && 
          objObject.IPEnabled == true)
       {
        if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
        MACAddr = objObject.MACAddress;
        if(objObject.IPEnabled && objObject.IPAddress(0) != null && 
            objObject.IPAddress(0) != "undefined")
        IPAddr = objObject.IPAddress(0);
        if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
        sDNSName = objObject.DNSHostName;
        }
      </SCRIPT>
    <OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
    <OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
    <SCRIPT language=JScript>
       var service = locator.ConnectServer();
       var MACAddr ;
       var IPAddr ;
       var DomainAddr;
       var sDNSName;
       service.Security_.ImpersonationLevel=3;
       service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
       </SCRIPT>
      

  5.   

    用 iptables 配个白名单就可以了。
      

  6.   


    反向思维,想控件不能登陆的IP还不如控件能登陆的IP,即使公司添加新电脑也不用去管它IP了