Package io.netty.handler.ipfilter
Class IpSubnetFilterRule
- java.lang.Object
-
- io.netty.handler.ipfilter.IpSubnetFilterRule
-
- All Implemented Interfaces:
IpFilterRule
,java.lang.Comparable<IpSubnetFilterRule>
public final class IpSubnetFilterRule extends java.lang.Object implements IpFilterRule, java.lang.Comparable<IpSubnetFilterRule>
Use this class to create rules forRuleBasedIpFilter
that group IP addresses into subnets. Supports both, IPv4 and IPv6.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
IpSubnetFilterRule.Ip4SubnetFilterRule
(package private) static class
IpSubnetFilterRule.Ip6SubnetFilterRule
-
Field Summary
Fields Modifier and Type Field Description private IpFilterRule
filterRule
private java.lang.String
ipAddress
-
Constructor Summary
Constructors Constructor Description IpSubnetFilterRule(java.lang.String ipAddress, int cidrPrefix, IpFilterRuleType ruleType)
Create a newIpSubnetFilterRule
instanceIpSubnetFilterRule(java.lang.String ipAddressWithCidr, IpFilterRuleType ruleType)
Create a newIpSubnetFilterRule
instanceIpSubnetFilterRule(java.net.InetAddress ipAddress, int cidrPrefix, IpFilterRuleType ruleType)
Create a newIpSubnetFilterRule
instance
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static int
compareInt(int x, int y)
Equivalent toInteger.compare(int, int)
int
compareTo(IpSubnetFilterRule ipSubnetFilterRule)
(package private) int
compareTo(java.net.InetSocketAddress inetSocketAddress)
It'll compare IP address withIpSubnetFilterRule.Ip4SubnetFilterRule.networkAddress
orIpSubnetFilterRule.Ip6SubnetFilterRule.networkAddress
.(package private) IpFilterRule
getFilterRule()
(package private) java.lang.String
getIpAddress()
Get IP Address of this ruleboolean
matches(java.net.InetSocketAddress remoteAddress)
IpFilterRuleType
ruleType()
private static IpFilterRule
selectFilterRule(java.net.InetAddress ipAddress, int cidrPrefix, IpFilterRuleType ruleType)
-
-
-
Field Detail
-
filterRule
private final IpFilterRule filterRule
-
ipAddress
private final java.lang.String ipAddress
-
-
Constructor Detail
-
IpSubnetFilterRule
public IpSubnetFilterRule(java.lang.String ipAddressWithCidr, IpFilterRuleType ruleType)
Create a newIpSubnetFilterRule
instance- Parameters:
ipAddressWithCidr
- IP Address with CIDR notation, e.g. (192.168.0.0/16) or (2001:db8::/32)ruleType
-IpFilterRuleType
to use
-
IpSubnetFilterRule
public IpSubnetFilterRule(java.lang.String ipAddress, int cidrPrefix, IpFilterRuleType ruleType)
Create a newIpSubnetFilterRule
instance- Parameters:
ipAddress
- IP Address asString
cidrPrefix
- CIDR PrefixruleType
-IpFilterRuleType
to use
-
IpSubnetFilterRule
public IpSubnetFilterRule(java.net.InetAddress ipAddress, int cidrPrefix, IpFilterRuleType ruleType)
Create a newIpSubnetFilterRule
instance- Parameters:
ipAddress
- IP Address asInetAddress
cidrPrefix
- CIDR PrefixruleType
-IpFilterRuleType
to use
-
-
Method Detail
-
selectFilterRule
private static IpFilterRule selectFilterRule(java.net.InetAddress ipAddress, int cidrPrefix, IpFilterRuleType ruleType)
-
matches
public boolean matches(java.net.InetSocketAddress remoteAddress)
- Specified by:
matches
in interfaceIpFilterRule
- Returns:
- This method should return true if remoteAddress is valid according to your criteria. False otherwise.
-
ruleType
public IpFilterRuleType ruleType()
- Specified by:
ruleType
in interfaceIpFilterRule
- Returns:
- This method should return
IpFilterRuleType.ACCEPT
if allIpFilterRule.matches(InetSocketAddress)
for whichIpFilterRule.matches(InetSocketAddress)
returns true should the accepted. If you want to exclude all of those IP addresses thenIpFilterRuleType.REJECT
should be returned.
-
getIpAddress
java.lang.String getIpAddress()
Get IP Address of this rule
-
getFilterRule
IpFilterRule getFilterRule()
-
compareTo
public int compareTo(IpSubnetFilterRule ipSubnetFilterRule)
- Specified by:
compareTo
in interfacejava.lang.Comparable<IpSubnetFilterRule>
-
compareTo
int compareTo(java.net.InetSocketAddress inetSocketAddress)
It'll compare IP address withIpSubnetFilterRule.Ip4SubnetFilterRule.networkAddress
orIpSubnetFilterRule.Ip6SubnetFilterRule.networkAddress
.- Parameters:
inetSocketAddress
-InetSocketAddress
to match- Returns:
- 0 if IP Address match else difference index.
-
compareInt
private static int compareInt(int x, int y)
Equivalent toInteger.compare(int, int)
-
-