org.jboss.netty.handler.ipfilter

## 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 and Description
`IpSubnet()` Create IpSubnet for ALL (used for ALLOW or DENY ALL)
`IpSubnet(InetAddress inetAddress, int cidrNetMask)` Create IpSubnet using the CIDR Notation
`IpSubnet(InetAddress inetAddress, String netMask)` Create IpSubnet using the normal Notation
`IpSubnet(String netAddress)` Create IpSubnet using the CIDR or normal Notation i.e.

### Method Summary

Methods
`int` `compareTo(IpSubnet o)` Compare two IpSubnet
`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` `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` `equals(Object o)`
`int` `hashCode()`
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### 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 Detail

#### 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>`