Class IpV4Subnet

java.lang.Object
org.jboss.netty.handler.ipfilter.IpV4Subnet
All Implemented Interfaces:
Comparable<IpV4Subnet>, IpSet
Direct Known Subclasses:
IpV4SubnetFilterRule

public class IpV4Subnet extends Object implements IpSet, Comparable<IpV4Subnet>
This class allows to check if an IP-V4-Address is contained in a subnet.
Supported Formats for the Subnets are: 1.1.1.1/255.255.255.255 or 1.1.1.1/32 (CIDR-Notation) and (InetAddress,Mask) where Mask is a integer for CIDR-notation or a String for Standard Mask notation.


Example1:
IpV4Subnet ips = new IpV4Subnet("192.168.1.0/24");
System.out.println("Result: "+ ips.contains("192.168.1.123"));
System.out.println("Result: "+ ips.contains(inetAddress2));

Example1 bis:
IpV4Subnet ips = new IpV4Subnet(inetAddress, 24);
where inetAddress is 192.168.1.0 and inetAddress2 is 192.168.1.123


Example2:
IpV4Subnet ips = new IpV4Subnet("192.168.1.0/255.255.255.0");
System.out.println("Result: "+ ips.contains("192.168.1.123"));
System.out.println("Result: "+ ips.contains(inetAddress2));

Example2 bis:
IpV4Subnet ips = new IpV4Subnet(inetAddress, "255.255.255.0");
where inetAddress is 192.168.1.0 and inetAddress2 is 192.168.1.123
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private int
     
    private InetAddress
     
    private int
     
    private int
     
    private static final int
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create IpV4Subnet for ALL (used for ALLOW or DENY ALL)
    IpV4Subnet(String netAddress)
    Create IpV4Subnet using the CIDR or normal Notation
    i.e.: IpV4Subnet subnet = new IpV4Subnet("10.10.10.0/24"); or IpV4Subnet subnet = new IpV4Subnet("10.10.10.0/255.255.255.0");
    IpV4Subnet(InetAddress inetAddress, int cidrNetMask)
    Create IpV4Subnet using the CIDR Notation
    IpV4Subnet(InetAddress inetAddress, String netMask)
    Create IpV4Subnet using the normal Notation
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Compare two IpV4Subnet
    boolean
    contains(String ipAddr)
    Compares the given IP-Address against the Subnet and returns true if the ip is in the subnet-ip-range and false if not.
    boolean
    contains(InetAddress inetAddress1)
    Compares the given InetAddress against the Subnet and returns true if the ip is in the subnet-ip-range and false if not.
    boolean
     
    int
     
    private void
    setCidrNetMask(int cidrNetMask)
    Sets the CIDR Netmask
    i.e.: setCidrNetMask(24);
    private void
    setNetAddress(String netAddress)
    Sets the Network Address in either CIDR or Decimal Notation.
    i.e.: setNetAddress("1.1.1.1/24"); or
    setNetAddress("1.1.1.1/255.255.255.0");
    private void
    setNetAddress(InetAddress inetAddress, int cidrNetMask)
    Sets the Network Address in CIDR Notation.
    private void
    setNetAddress(InetAddress inetAddress, String netMask)
    Sets the Network Address in Decimal Notation.
    private void
    Sets the BaseAdress of the Subnet.
    i.e.: setNetId("192.168.1.0");
    private void
    setNetId(InetAddress inetAddress)
    Sets the BaseAdress of the Subnet.
    private void
    setNetMask(String netMask)
    Sets the Subnet's Netmask in Decimal format.
    i.e.: setNetMask("255.255.255.0");
    private static int
    toInt(InetAddress inetAddress1)
    Compute integer representation of InetAddress
     

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • SUBNET_MASK

      private static final int SUBNET_MASK
      See Also:
    • inetAddress

      private InetAddress inetAddress
    • subnet

      private int subnet
    • mask

      private int mask
    • cidrMask

      private int cidrMask
  • Constructor Details

    • IpV4Subnet

      public IpV4Subnet()
      Create IpV4Subnet for ALL (used for ALLOW or DENY ALL)
    • IpV4Subnet

      public IpV4Subnet(String netAddress) throws UnknownHostException
      Create IpV4Subnet using the CIDR or normal Notation
      i.e.: IpV4Subnet subnet = new IpV4Subnet("10.10.10.0/24"); or IpV4Subnet subnet = new IpV4Subnet("10.10.10.0/255.255.255.0");
      Parameters:
      netAddress - a network address as string.
      Throws:
      UnknownHostException
    • IpV4Subnet

      public IpV4Subnet(InetAddress inetAddress, int cidrNetMask)
      Create IpV4Subnet using the CIDR Notation
    • IpV4Subnet

      public IpV4Subnet(InetAddress inetAddress, String netMask)
      Create IpV4Subnet using the normal Notation
  • Method Details

    • setNetAddress

      private void setNetAddress(String netAddress) throws UnknownHostException
      Sets the Network Address in either CIDR or Decimal Notation.
      i.e.: setNetAddress("1.1.1.1/24"); or
      setNetAddress("1.1.1.1/255.255.255.0");
      Parameters:
      netAddress - a network address as string.
      Throws:
      UnknownHostException
    • setNetAddress

      private void setNetAddress(InetAddress inetAddress, int cidrNetMask)
      Sets the Network Address in CIDR Notation.
    • setNetAddress

      private void setNetAddress(InetAddress inetAddress, String netMask)
      Sets the Network Address in Decimal Notation.
    • setNetId

      private void setNetId(String netId) throws UnknownHostException
      Sets the BaseAdress of the Subnet.
      i.e.: setNetId("192.168.1.0");
      Parameters:
      netId - a network ID
      Throws:
      UnknownHostException
    • toInt

      private static int toInt(InetAddress inetAddress1)
      Compute integer representation of InetAddress
      Returns:
      the integer representation
    • setNetId

      private void setNetId(InetAddress inetAddress)
      Sets the BaseAdress of the Subnet.
    • setNetMask

      private void setNetMask(String netMask)
      Sets the Subnet's Netmask in Decimal format.
      i.e.: setNetMask("255.255.255.0");
      Parameters:
      netMask - a network mask
    • setCidrNetMask

      private void setCidrNetMask(int cidrNetMask)
      Sets the CIDR Netmask
      i.e.: setCidrNetMask(24);
      Parameters:
      cidrNetMask - a netmask in CIDR notation
    • contains

      public boolean contains(String ipAddr) throws UnknownHostException
      Compares the given IP-Address against the Subnet and returns true if the ip is in the subnet-ip-range and false if not.
      Parameters:
      ipAddr - an ipaddress
      Returns:
      returns true if the given IP address is inside the currently set network.
      Throws:
      UnknownHostException
    • contains

      public boolean contains(InetAddress inetAddress1)
      Compares the given InetAddress against the Subnet and returns true if the ip is in the subnet-ip-range and false if not.
      Specified by:
      contains in interface IpSet
      Returns:
      returns true if the given IP address is inside the currently set network.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

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

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

      public int compareTo(IpV4Subnet o)
      Compare two IpV4Subnet
      Specified by:
      compareTo in interface Comparable<IpV4Subnet>