NAME¶iprange - manage IP ranges
SYNOPSIS¶iprange [options] file1 file2 file3 ...
DESCRIPTION¶iprange manages IP ranges
OPTIONS¶multiple options are aliases
CIDR output modes:¶
- > MERGE mode (the default)
- Returns all IPs found on all files. The resulting set is sorted.
- > COMMON mode
- Intersect all files to find their common IPs. The resulting set is sorted.
- > EXCEPT mode
- Here is how it works: (1) merge all files before this parameter (ipset A); (2) remove all IPs found in the files after this parameter, from ipset A and print what remains. The resulting set is sorted.
- > DIFF mode
- Here is how it works: (1) merge all files before this parameter (ipset A); (2) merge all files after this parameter (ipset B); (3) print all differences between A and B, i.e IPs found is either A or B, but not both. The resulting set is sorted. When there are differences between A and B, iprange exits with 1, with 0 otherwise.
- > IPSET REDUCE mode
- Merge all files and print the merged set, but try to reduce the number of prefixes (subnets) found, while allowing some increase in entries. The PERCENT is how much percent to allow increase on the number of entries in order to reduce the prefixes (subnets) (the internal default PERCENT is 20). Use -v to see exactly what it does. The resulting set is sorted.
- > IPSET REDUCE mode
- Allow increasing the entries above PERCENT, if they are below ENTRIES (the internal default ENTRIES is 16384).
CSV output modes:¶
- > COMPARE ALL mode
- Compare all files with all other files. Add --header to get the CSV header too.
- > COMPARE FIRST mode
- Compare the first file with all other files. Add --header to get the CSV header too.
- > COMPARE NEXT mode
- Compare all the files that appear before this parameter, to all files that appear after this parameter. Add --header to get the CSV header too.
- > COUNT UNIQUE mode
- Merge all files and print its counts. Add --header to get the CSV header too.
- > COUNT UNIQUE ALL mode
- Print counts for each file. Add --header to get the CSV header too.
- By default, the network address of all CIDRs is used (i.e., 184.108.40.206/24 is read as 220.127.116.11/24): this option disables this feature (i.e., 18.104.22.168/24 is read as 22.214.171.124-126.96.36.199).
- Set the default prefix for all IPs without mask (the default is 32).
Controlling CIDR output:¶
- Do not generate prefixes larger than N, i.e., if N is 24 then /24 to /32 entries will be generated (a /16 network will be generated using multiple /24 networks). This is useful to optimize netfilter/iptables ipsets where each different prefix increases the lookup time for each packet whereas the number of entries in the ipset do not affect its performance. With this setting more entries will be produced to accomplish the same match. WARNING: misuse of this parameter can create a large number of entries in the generated set.
--prefixes N,N,N, ...
- Enable only the given prefixes to express all CIDRs; prefix 32 is always enabled. WARNING: misuse of this parameter can create a large number of entries in the generated set.
- Print IP ranges (A.A.A.A-B.B.B.B) (the default is to print CIDRs (A.A.A.A/B)). It only applies when the output is not CSV.
- Print single IPs; this can produce large output (the default is to print CIDRs (A.A.A.A/B)). It only applies when the output is not CSV.
- Print binary data: this is the fastest way to print a large ipset. The result can be read by iprange on the same architecture (no conversion of endianness).
- Print STRING before each IP, range or CIDR. This sets both --print-prefix-ips and --print-prefix-nets .
- Print STRING before each single IP: useful for entering single IPs to a different ipset than the networks.
- Print STRING before each range or CIDR: useful for entering sunbets to a different ipset than single IPs.
- Print STRING after each IP, range or CIDR. This sets both --print-suffix-ips and --print-suffix-nets .
- Print STRING after each single IP: useful for giving single IPs different ipset options.
- Print STRING after each range or CIDR: useful for giving subnets different ipset options.
- Do not print the actual ipset. Can only be used in DIFF mode.
Controlling CSV output:¶
- When the output is CSV, print the header line (the default is to not print the header line).
Controlling DNS resolution:¶
- The number of parallel DNS queries to execute when the input files contain hostnames (the default is 5).
- Do not print DNS resolution errors (the default is to print all DNS related errors).
- Print DNS resolution progress bar.
- Exits with 0, other versions of iprange will exit with 1. Use this option in scripts to find if this version of iprange is present in a system.
- Be verbose on stderr.
- Print version and exit.
- Print this message and exit.
- > fileN
- A filename or - for stdin. Each filename can be followed by [as NAME] to change its name in the CSV output. If no filename is given, stdin is assumed.
- Files may contain any or all of the following: (1) comments starting with hashes (#) or semicolons (;); (2) one IP per line (without mask); (3) a CIDR per line (A.A.A.A/B); (4) an IP range per line (A.A.A.A - B.B.B.B); (5) a CIDR range per line (A.A.A.A/B - C.C.C.C/D); the range is calculated as the network address of A.A.A.A/B to the broadcast address of C.C.C.C/D (this is affected by --dont-fix-network); (6) CIDRs can be given in either prefix or netmask format in all cases (including ranges); (7) one hostname per line, to be resolved with DNS (if the IP resolves to multiple IPs, all of them will be added to the ipset) hostnames cannot be given as ranges; (8) spaces and empty lines are ignored.
- Any number of files can be given.
COPYRIGHT¶Copyright © 2015-2017 Costa Tsaousis for FireHOL (Refactored and extended)
Copyright © 2004 Paul Townsend (Adapted)
Copyright © 2003 Gabriel L. Somlo (Original)
License: GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl2.html>. This program comes with ABSOLUTELY NO WARRANTY; This is free software, and you are welcome to redistribute it under certain conditions; See COPYING distributed in the source for details.
|December 2018||iprange 1.0.4|