hath: Hath manipulates network blocks in CIDR notation.

[ agpl, program, utils ] [ Propose Tags ]

Hath is a Haskell program for working with network blocks in CIDR notation. When dealing with blocks of network addresses, there are a few things that one usually wants to do with them:

  • Create a regular expression matching the CIDR block(s). This is because grep will throw up if you feed it CIDR.

  • Combine small blocks into larger ones. For example, if you have two consecutive /24s, they might combine into a larger /23.

  • View the result of block combination in a useful way.

  • List them.

Hath has several modes to perform these functions:

  • Regexed This computes a (Perl-compatible) regular expression matching the input CIDR blocks. It's the default mode of operation.

  • Reduced This combines small blocks into larger ones where possible, and eliminates redundant blocks. The output should be equivalent to the input, though.

  • Duped Shows only the blocks that would be removed by reduce; that is, it shows the ones that would get combined into larger blocks or are simply redundant.

  • Diffed Shows what would change if you used reduce. Uses diff-like notation.

  • Listed List the IP addresses contained within the given CIDRs.

Examples:

Compute a (Perl-compatible) regular expression matching the input CIDR blocks. It's the default mode of operation.

$ echo "10.0.0.0/29 10.0.0.8/29" | hath
((10).(0).(0).(15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0))

Combine two /24s into a /23:

$ echo "10.0.0.0/24 10.0.1.0/24" | hath reduced
10.0.0.0/23

List the addresses in 192.168.0.240/29:

$ echo 192.168.0.240/29 | hath listed
192.168.0.240
192.168.0.241
192.168.0.242
192.168.0.243
192.168.0.244
192.168.0.245
192.168.0.246
192.168.0.247

The command-line syntax and complete set of options are documented in the man page.

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.1.0, 0.1.1, 0.1.2, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.3.0, 0.4.1, 0.4.2, 0.5.0, 0.5.7
Dependencies base (>=4.15 && <5.0), cmdargs (>=0.10), split (>=0.2), tasty (>=0.8), tasty-hunit (>=0.8), tasty-quickcheck (>=0.8.1) [details]
License AGPL-3.0-only
Author Michael Orlitzky
Maintainer Michael Orlitzky <michael@orlitzky.com>
Category Utils
Home page http://michael.orlitzky.com/code/hath.xhtml
Source repo head: git clone http://gitweb.michael.orlitzky.com/hath.git -b master
Uploaded by MichaelOrlitzky at 2022-08-28T12:11:39Z
Distributions NixOS:0.5.7
Reverse Dependencies 1 direct, 0 indirect [details]
Executables hath
Downloads 12296 total (64 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
Last success reported on 2022-08-28 [all 1 reports]