Class IpSubnetFilterRule
java.lang.Object
io.netty.handler.ipfilter.IpSubnetFilterRule
- All Implemented Interfaces:
IpFilterRule, Comparable<IpSubnetFilterRule>
public final class IpSubnetFilterRule
extends Object
implements IpFilterRule, Comparable<IpSubnetFilterRule>
Use this class to create rules for
RuleBasedIpFilter that group IP addresses into subnets.
Supports both, IPv4 and IPv6.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final class(package private) static final class -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionIpSubnetFilterRule(String ipAddress, int cidrPrefix, IpFilterRuleType ruleType) Create a newIpSubnetFilterRuleinstanceIpSubnetFilterRule(String ipAddressWithCidr, IpFilterRuleType ruleType) Create a newIpSubnetFilterRuleinstanceIpSubnetFilterRule(InetAddress ipAddress, int cidrPrefix, IpFilterRuleType ruleType) Create a newIpSubnetFilterRuleinstance -
Method Summary
Modifier and TypeMethodDescriptionprivate static intcompareInt(int x, int y) IPv4 addresses are compared as unsigned values, so 128.0.0.0 and above sort after 127.255.255.255.intcompareTo(IpSubnetFilterRule ipSubnetFilterRule) (package private) intcompareTo(InetSocketAddress inetSocketAddress) It'll compare IP address withIpSubnetFilterRule.Ip4SubnetFilterRule.networkAddressorIpSubnetFilterRule.Ip6SubnetFilterRule.networkAddress.(package private) booleancontains(IpSubnetFilterRule other) trueif every address matched byotheris also matched by this rule.(package private) IpFilterRule(package private) StringGet IP Address of this rulebooleanmatches(InetSocketAddress remoteAddress) ruleType()private static IpFilterRuleselectFilterRule(InetAddress ipAddress, int cidrPrefix, IpFilterRuleType ruleType) toString()
-
Field Details
-
filterRule
-
ipAddress
-
-
Constructor Details
-
IpSubnetFilterRule
Create a newIpSubnetFilterRuleinstance- Parameters:
ipAddressWithCidr- IP Address with CIDR notation, e.g. (192.168.0.0/16) or (2001:db8::/32)ruleType-IpFilterRuleTypeto use
-
IpSubnetFilterRule
Create a newIpSubnetFilterRuleinstance- Parameters:
ipAddress- IP Address asStringcidrPrefix- CIDR PrefixruleType-IpFilterRuleTypeto use
-
IpSubnetFilterRule
Create a newIpSubnetFilterRuleinstance- Parameters:
ipAddress- IP Address asInetAddresscidrPrefix- CIDR PrefixruleType-IpFilterRuleTypeto use
-
-
Method Details
-
selectFilterRule
private static IpFilterRule selectFilterRule(InetAddress ipAddress, int cidrPrefix, IpFilterRuleType ruleType) -
matches
- Specified by:
matchesin interfaceIpFilterRule- Returns:
- This method should return true if remoteAddress is valid according to your criteria. False otherwise.
-
ruleType
- Specified by:
ruleTypein interfaceIpFilterRule- Returns:
- This method should return
IpFilterRuleType.ACCEPTif allIpFilterRule.matches(InetSocketAddress)for whichIpFilterRule.matches(InetSocketAddress)returns true should the accepted. If you want to exclude all of those IP addresses thenIpFilterRuleType.REJECTshould be returned.
-
getIpAddress
String getIpAddress()Get IP Address of this rule -
getFilterRule
-
compareTo
- Specified by:
compareToin interfaceComparable<IpSubnetFilterRule>
-
compareTo
It'll compare IP address withIpSubnetFilterRule.Ip4SubnetFilterRule.networkAddressorIpSubnetFilterRule.Ip6SubnetFilterRule.networkAddress.- Parameters:
inetSocketAddress-InetSocketAddressto match- Returns:
- 0 if IP Address match else difference index.
-
contains
trueif every address matched byotheris also matched by this rule. -
compareInt
private static int compareInt(int x, int y) IPv4 addresses are compared as unsigned values, so 128.0.0.0 and above sort after 127.255.255.255. -
toString
-