Class CIDR

java.lang.Object
org.jboss.netty.handler.ipfilter.CIDR
All Implemented Interfaces:
Comparable<CIDR>
Direct Known Subclasses:
CIDR4, CIDR6

public abstract class CIDR extends Object implements Comparable<CIDR>
  • Field Details

    • baseAddress

      protected InetAddress baseAddress
      The base address of the CIDR notation
    • cidrMask

      protected int cidrMask
      The mask used in the CIDR notation
  • Constructor Details

    • CIDR

      public CIDR()
  • Method Details

    • newCIDR

      public static CIDR newCIDR(InetAddress baseAddress, int cidrMask) throws UnknownHostException
      Create CIDR using the CIDR Notation
      Returns:
      the generated CIDR
      Throws:
      UnknownHostException
    • newCIDR

      public static CIDR newCIDR(InetAddress baseAddress, String scidrMask) throws UnknownHostException
      Create CIDR using the normal Notation
      Returns:
      the generated CIDR
      Throws:
      UnknownHostException
    • newCIDR

      public static CIDR newCIDR(String cidr) throws UnknownHostException
      Create CIDR using the CIDR or normal Notation
      i.e.: CIDR subnet = newCIDR ("10.10.10.0/24"); or CIDR subnet = newCIDR ("1fff:0:0a88:85a3:0:0:ac1f:8001/24"); or CIDR subnet = newCIDR ("10.10.10.0/255.255.255.0");
      Returns:
      the generated CIDR
      Throws:
      UnknownHostException
    • getBaseAddress

      public InetAddress getBaseAddress()
      Returns:
      the baseAddress of the CIDR block.
    • getMask

      public int getMask()
      Returns:
      the Mask length.
    • toString

      public String toString()
      Overrides:
      toString in class Object
      Returns:
      the textual CIDR notation.
    • getEndAddress

      public abstract InetAddress getEndAddress()
      Returns:
      the end address of this block.
    • contains

      public abstract boolean contains(InetAddress inetAddress)
      Compares the given InetAddress against the CIDR and returns true if the ip is in the subnet-ip-range and false if not.
      Returns:
      returns true if the given IP address is inside the currently set network.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • addressStringToInet

      private static InetAddress addressStringToInet(String addr) throws UnknownHostException
      Convert an IPv4 or IPv6 textual representation into an InetAddress.
      Returns:
      the created InetAddress
      Throws:
      UnknownHostException
    • getNetMask

      private static int getNetMask(String netMask)
      Get the Subnet's Netmask in Decimal format.
      i.e.: getNetMask("255.255.255.0") returns the integer CIDR mask
      Parameters:
      netMask - a network mask
      Returns:
      the integer CIDR mask
    • parseInt

      private static int parseInt(String intstr, int def)
      Parameters:
      intstr - a string containing an integer.
      def - the default if the string does not contain a valid integer.
      Returns:
      the inetAddress from the integer
    • getIpV4FromIpV6

      public static byte[] getIpV4FromIpV6(Inet6Address address)
      Compute a byte representation of IpV4 from a IpV6
      Returns:
      the byte representation
      Throws:
      IllegalArgumentException - if the IpV6 cannot be mapped to IpV4
    • getIpV6FromIpV4

      public static byte[] getIpV6FromIpV4(Inet4Address address)
      Compute a byte representation of IpV6 from a IpV4
      Returns:
      the byte representation
      Throws:
      IllegalArgumentException - if the IpV6 cannot be mapped to IpV4