Converting CIDR address to subnet mask and network address

前端 未结 11 733
既然无缘
既然无缘 2020-11-29 01:32

Given a CIDR address, e.g. 192.168.10.0/24

  • How to determine mask length? (24)
  • How to determine mask address? (255.255.
11条回答
  •  时光说笑
    2020-11-29 01:42

    The IPAddress Java library supports both IPv4 and IPv6 in a polymorphic manner including subnets. The javadoc is available at the link. Disclaimer: I am the project manager.

    All the use cases you listed are supported for both IPv4 and Ipv6 transparently.

        String str = "192.168.10.0/24";
        IPAddressString addrString = new IPAddressString(str);
        try {
             IPAddress addr = addrString.toAddress();
             Integer prefix = addr.getNetworkPrefixLength(); //24
             IPAddress mask = addr.getNetwork().getNetworkMask(prefix, false);//255.255.255.0
             IPAddress networkAddr = addr.mask(mask);  //192.168.10.0
             IPAddress networkAddrOtherWay = addr.getLower().removePrefixLength(); //192.168.10.0
    
             ...
        } catch(AddressStringException e) {
            //e.getMessage provides validation issue
        }
    

提交回复
热议问题