From c8cda71c4a73a4995669c0aaa9dce904bd2dcbd6 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sun, 18 Aug 2013 22:10:44 -0400 Subject: [PATCH] Update man page and cabal file examples. --- doc/man1/hath.1 | 91 +++++++++++++++++++++++++++++-------------------- hath.cabal | 34 ++++++++++++++++-- 2 files changed, 86 insertions(+), 39 deletions(-) diff --git a/doc/man1/hath.1 b/doc/man1/hath.1 index 7006ac3..3050385 100644 --- a/doc/man1/hath.1 +++ b/doc/man1/hath.1 @@ -2,95 +2,112 @@ .SH NAME hath \- Manipulate network blocks in CIDR notation - .SH SYNOPSIS \fBhath\fR [\fBregexed|reduced|duped|diffed\fR] [\fB\-h\fR] [\fB-i \fIFILE\fR] \fI\fR - .SH INPUT - .P The \fIinput\fR (default: stdin) should be a list of CIDR blocks, separated by whitespace. Empty lines will be ignored, but otherwise, malformed entries will cause an error to be displayed. - .SH DESCRIPTION - .P 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: - -.IP \[bu] 2 +.IP \(bu 2 Create a regular expression matching the CIDR block(s). This is because grep will throw up if you feed it CIDR. - -.IP \[bu] +.IP \(bu Combine small blocks into larger ones. For example, if you have two consecutive /24s, they might combine into a larger /23. - -.IP \[bu] +.IP \(bu View the result of block combination in a useful way. - .P Hath does just that. It takes as its input (via stdin, or a file with the -i parameter) a list of CIDR blocks. - .SH MODES - .P -Hath currently has four modes: - -.IP \[bu] 2 +Hath has several modes: +.IP \(bu 2 \fBRegexed\fR - +.P This computes a (Perl-compatible) regular expression matching the input CIDR blocks. It's the default mode of operation. - +.P .nf -.B $ hath <<< \(dq10.0.0.0/24 10.0.1.0/24\(dq +.I $ hath <<< \(dq10.0.0.0/24 10.0.1.0/24\(dq ([^\.0-9](10)\.(0)\.(0)\.(0)[^\.0-9]|[^\.0-9](10)\.(0)\.(1) \.(0)[^\.0-9]) - -.IP \[bu] +.fi +.IP \(bu 2 \fBReduced\fR - +.P This combines small blocks into larger ones where possible, and eliminates redundant blocks. The output should be equivalent to the input, though. - +.P .nf -.B $ hath reduced <<< \(dq10.0.0.0/24 10.0.1.0/24\(dq +.I $ hath reduced <<< \(dq10.0.0.0/24 10.0.1.0/24\(dq 10.0.0.0/23 - -.IP \[bu] +.fi +.IP \(bu 2 \fBDuped\fR - +.P 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. - +.P .nf -.B $ hath duped <<< \(dq10.0.0.0/24 10.0.1.0/24\(dq +.I $ hath duped <<< \(dq10.0.0.0/24 10.0.1.0/24\(dq 10.0.0.0/24 10.0.1.0/24 - -.IP \[bu] +.fi +.IP \(bu 2 \fBDiffed\fR - +.P Shows what would change if you used reduce. Uses diff-like notation. - +.P .nf -.B $ hath diffed <<< \(dq10.0.0.0/24 10.0.1.0/24\(dq +.I $ hath diffed <<< \(dq10.0.0.0/24 10.0.1.0/24\(dq -10.0.0.0/24 -10.0.1.0/24 +10.0.0.0/23 - +.fi +.IP \(bu 2 +\fBListed\fR +.P +List the IP addresses contained within the given CIDRs. +.P +.nf +.I $ hath listed <<< \(dq192.168.0.240/29\(dq +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 +.fi +.IP \(bu 2 +\fBReversed\fR +.P +Perform reverse DNS (PTR) lookups on the IP addresses contained within +the given CIDRs. +.P +.nf +.I $ hath reversed <<< \(dq198.41.0.4\/30\(dq +198.41.0.4: a.root-servers.net. +198.41.0.5: +198.41.0.6: rs.internic.net. +198.41.0.7: +.fi .P Each of the modes also supports a present-tense flavor; the following are equivalent to their counterparts: \fBregex\fR, \fBreduce\fR, -\fBdupe\fR, \fBdiff\fR. +\fBdupe\fR, \fBdiff\fR, \fBlist\fR, \fBreverse\fR. .SH OPTIONS diff --git a/hath.cabal b/hath.cabal index b11ea39..48db071 100644 --- a/hath.cabal +++ b/hath.cabal @@ -24,7 +24,7 @@ description: . * View the result of block combination in a useful way. . - Hath has four modes to perform these functions: + Hath has several modes to perform these functions: . [@Regexed@] This computes a (Perl-compatible) regular expression matching @@ -43,6 +43,13 @@ description: [@Diffed@] Shows what would change if you used reduce. Uses diff-like notation. + . + [@Listed@] + List the IP addresses contained within the given CIDRs. + . + [@Reversed@] + Perform reverse DNS (PTR) lookups on the IP addresses contained + within the given CIDRs. . /Examples/: . @@ -58,7 +65,30 @@ description: @ $ grep -P `hath regexed -i cidrs.txt` mail.log @ - + . + List the addresses in 192.168.0.240\/29: + . + @ + $ hath listed <<< \"192.168.0.240\/29\" + 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 + @ + . + Perform PTR lookups on all of 198.41.0.4\/30: + . + @ + hath reversed <<< \"198.41.0.4\/30\" + 198.41.0.4: a.root-servers.net. + 198.41.0.5: + 198.41.0.6: rs.internic.net. + 198.41.0.7: + @ executable hath build-depends: -- 2.43.2