Class SubnetUtils


  • public class SubnetUtils
    extends java.lang.Object
    A class that performs some subnet calculations given a network address and a subnet mask.
    Since:
    2.0
    See Also:
    "http://www.faqs.org/rfcs/rfc1519.html"
    • Field Detail

      • addressPattern

        private static final java.util.regex.Pattern addressPattern
      • cidrPattern

        private static final java.util.regex.Pattern cidrPattern
      • netmask

        private int netmask
      • address

        private int address
      • network

        private int network
      • broadcast

        private int broadcast
      • inclusiveHostCount

        private boolean inclusiveHostCount
        Whether the broadcast/network address are included in host count
    • Constructor Detail

      • SubnetUtils

        public SubnetUtils​(java.lang.String cidrNotation)
        Constructor that takes a CIDR-notation string, e.g. "192.168.0.1/16"
        Parameters:
        cidrNotation - A CIDR-notation string, e.g. "192.168.0.1/16"
        Throws:
        java.lang.IllegalArgumentException - if the parameter is invalid, i.e. does not match n.n.n.n/m where n=1-3 decimal digits, m = 1-3 decimal digits in range 1-32
      • SubnetUtils

        public SubnetUtils​(java.lang.String address,
                           java.lang.String mask)
        Constructor that takes a dotted decimal address and a dotted decimal mask.
        Parameters:
        address - An IP address, e.g. "192.168.0.1"
        mask - A dotted decimal netmask e.g. "255.255.0.0"
        Throws:
        java.lang.IllegalArgumentException - if the address or mask is invalid, i.e. does not match n.n.n.n where n=1-3 decimal digits and the mask is not all zeros
    • Method Detail

      • isInclusiveHostCount

        public boolean isInclusiveHostCount()
        Returns true if the return value of SubnetUtils.SubnetInfo.getAddressCount() includes the network and broadcast addresses.
        Returns:
        true if the hostcount includes the network and broadcast addresses
        Since:
        2.2
      • setInclusiveHostCount

        public void setInclusiveHostCount​(boolean inclusiveHostCount)
        Set to true if you want the return value of SubnetUtils.SubnetInfo.getAddressCount() to include the network and broadcast addresses.
        Parameters:
        inclusiveHostCount - true if network and broadcast addresses are to be included
        Since:
        2.2
      • calculate

        private void calculate​(java.lang.String mask)
      • toInteger

        private int toInteger​(java.lang.String address)
      • matchAddress

        private int matchAddress​(java.util.regex.Matcher matcher)
      • toArray

        private int[] toArray​(int val)
      • format

        private java.lang.String format​(int[] octets)
      • rangeCheck

        private int rangeCheck​(int value,
                               int begin,
                               int end)
      • pop

        int pop​(int x)
      • toCidrNotation

        private java.lang.String toCidrNotation​(java.lang.String addr,
                                                java.lang.String mask)