tableutil
—
converts and performs operations on tables
tableutil
can be used to convert files with IP-addresses
and ranges and aggregate networks. The options are as follows:
-c
commands
- execute the commands specified by commands.
-f
file
- file is the name of the file with commands to be
loaded.
-q
type [file]
- Quick-convert file from type
to a CIDR-notation, as used by PF. type can be
either 'text' or 'p2b'. The text format accepts addresses on the form
'n.n.n.n', 'n.n.n.n-n.n.n.n' or 'n.n.n.n/n'. p2b is the format used in the
lists provided by blocklist.org. If file is omitted,
standard input is assumed. p2b-files can be either gzipped or
uncompressed.
The command file/string consists of a series of statements separated by ;
Example quick-conversion:
$ tableutil -q p2b ads.p2b.gz
Example command-file:
# Assign some values to some variables
$range = { 192.168.0.0-192.168.2.255 };
$cidr = { 192.168.3.0/24 };
$text = load(text, "file_with_networks");
$p2b = load(p2b, "ads.p2b.gz");
# Do some calculations and store them in some other variables
$table1 = difference($p2b, $text);
$table2 = union($range, $cidr);
$table3 = invert( { 192.168.0.1 } );
$table4 = intersect( { 192.168.1.0-192.168.3.255 }, $range);
# Save some of the variables, and a bonus, to files.
save(cidr, "table1", $table1);
save(range, "table2", $table2);
save(cidr, "table3", $table3);
save(cidr, "table4", $table4);
save(range, "table5", { 0.0.0.0/0 } );
save(single, "table6", $cidr );
tableutil
can exit with the following values:
- 0 Command completed successfully.
-
- 1 Invalid arguments supplied.
-
- -1 Internal error.
-
Many, probably. And the man-page needs improving.