cidr 1.0.0
cidr: ^1.0.0 copied to clipboard
A small Dart library that parses CIDR notation and checks whether an IP address is inside a CIDR range. Supports IPv4 and IPv6.
CIDR #
A small Dart library that parses CIDR notation and checks whether an IP address is inside a CIDR range. Supports IPv4 and IPv6.
Features #
- Parse CIDR strings like
10.0.0.0/8and2001:db8::/32 - Check membership with
contains() - Works with both IPv4 and IPv6 addresses
- Lightweight, no dependencies beyond Dart core
Installation #
Add the package to your project:
dart pub add cidr
Usage #
Create a CIDR range and test an address:
import 'package:cidr/cidr.dart';
void main() {
final range = CIDR('10.0.0.0/8');
print(range.contains('10.42.1.99')); // true
print(range.contains('192.168.0.1')); // false
}
IPv6 works the same way:
import 'package:cidr/cidr.dart';
void main() {
final range = CIDR('2001:db8::/32');
print(range.contains('2001:db8::1')); // true
print(range.contains('2001:dead::1')); // false
}
API #
CIDR(String cidr)parses a CIDR string such as192.168.0.0/16.bool contains(String address)returns whether an address is inside the range.toString()returns the original CIDR string.
Errors #
Invalid input throws FormatException:
- CIDR is not in
address/prefixform - Address is not valid IPv4 or IPv6
- Mask length is out of range for the address family
AI Usage Disclosure #
AI assistance was used to generate parts of the test cases and documentation. No production source code in this package was generated by AI.