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
    Modifier and Type | Method and Description
    --- | ---
    `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>`

Copyright © 2008-2012 The Netty Project. All Rights Reserved.