2

可以说我有这个:

SubnetUtils utils = new SubnetUtils("192.168.1.0/24");
utils.getInfo().getNetmask() // = 255.255.255.0

是否有一种简单的方法可以反转掩码(Cisco ACL 样式)?

eg.: 0.0.0.255
4

1 回答 1

1

我提出了一个可能适用于您的情况的代码。但是,也许有一个库可以以更优化的方式完成它?

    public String reverseMask(String mask) {
       String[] octets = mask.split("\\.");
       StringBuilder sb = new StringBuilder();
       for (int i=0;i<4;i++) {
         sb.append(String.valueOf(0xFF ^ Integer.valueOf(octets[i])))
           .append(i==3 ? "" : ".");
       }
       return sb;
    }
于 2011-12-01T22:26:12.210 回答