Class IpSubnet

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

public class IpSubnet extends Object implements IpSet, Comparable<IpSubnet>
This class allows to check if an IP V4 or V6 Address is contained in a subnet.

Supported IP V4 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

Supported IP V6 Formats for the Subnets are: a:b:c:d:e:f:g:h/NN (CIDR-Notation) or any IPV6 notations (like a:b:c:d::/NN, a:b:c:d:e:f:w.x.y.z/NN) and (InetAddress,Mask) where Mask is a integer for CIDR-notation and (InetAddress,subnet).


Example1:
IpSubnet ips = new IpSubnet("1fff:0:0a88:85a3:0:0:0:0/24");
IpSubnet ips = new IpSubnet("1fff:0:0a88:85a3::/24");
System.out.println("Result: "+ ips.contains("1fff:0:0a88:85a3:0:0:ac1f:8001"));
System.out.println("Result: "+ ips.contains(inetAddress2));

Example1 bis:
IpSubnet ips = new IpSubnet(inetAddress, 24);
where inetAddress2 is 1fff:0:0a88:85a3:0:0:ac1f:8001

  • Constructor Summary

    Constructors
    Constructor
    Description
    Create IpSubnet for ALL (used for ALLOW or DENY ALL)
    IpSubnet(String netAddress)
    Create IpSubnet using the CIDR or normal Notation
    i.e
    IpSubnet(InetAddress inetAddress, int cidrNetMask)
    Create IpSubnet using the CIDR Notation
    IpSubnet(InetAddress inetAddress, String netMask)
    Create IpSubnet using the normal Notation
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Compare two IpSubnet
    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 inetAddress)
    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
     
     

    Methods inherited from class java.lang.Object

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

    • IpSubnet

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

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

      public IpSubnet(InetAddress inetAddress, int cidrNetMask) throws UnknownHostException
      Create IpSubnet using the CIDR Notation
      Throws:
      UnknownHostException
    • IpSubnet

      public IpSubnet(InetAddress inetAddress, String netMask) throws UnknownHostException
      Create IpSubnet using the normal Notation
      Throws:
      UnknownHostException
  • Method Details

    • 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 inetAddress)
      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(IpSubnet o)
      Compare two IpSubnet
      Specified by:
      compareTo in interface Comparable<IpSubnet>