我有以下JSP代码,用于保护我的网页并仅在知道IP的情况下显示它

String ip_h = request.getRemoteAddr();
String host_h = request.getRemoteHost();
String iplist[] = new String[1];
iplist[0] = "127.0.0.1";
iplist[1] = "10.217.106.248";

int count = iplist.length;
boolean flag = false;
int zz = 0;
//return;
System.out.println(host_h);
while ( (flag==false) && ( zz < count) )
{
   if (ip_h.equals(iplist[zz]) || host_h.equals(iplist[zz]) )
   {
      flag = true;
   }
   zz++;
}


但是,我宁愿检查子网范围,即允许所有属于10.217.0.0/16的用户。

我该怎么做呢?

最佳答案

IP地址(至少是IPv4地址)实际上旨在表示为32位整数。如果首先将IP地址转换为整数,则检查子网范围将变得相对简单(在您的示例中)检查范围的前16位是否匹配范围。

10-08 19:03