Software

Here's the small collection of software I distribute. I welcome feedback, especially suggestions for improvements. Patches are most welcome.

aggregate-cidr-addresses
Take a list of CIDR address blocks and combine them, for example, 192.168.0.0/24 and 192.168.1.0/24 gives 192.168.0.0/23. I usually use "list-iana-reserved-ranges | aggregate-cidr-addresses" to get a list of blocks to not report with firewall log processing.
bgp-as
This program uses http://looking-glass.optus.net.au/ to display the BGP table for a given network. Please respect Optus' clearly stated wishes and just use this manually from the command line - don't force Optus to withdraw their valuable service to the Internet community
clean-up-html-code
create-snapshot-montages
ddns-scavenger
dynamic-dns-update
This shell script uses utilities shipped with ISC BIND to update a zone using Dynamic DNS Update requests (RFC2136).
example-web-admin
This is a example admin script designed with security in mind.
example-webpage-counter
A sample web counter implemention, designed for safety of the number stored. It isn't really useful; however, it will work and provides a good base for your script.
fibonacci-benchmark
force-link-up
generate-random-password
Random passwords of a specified length.
get-current-dhcpd-leases
Filters dhcpd.leases to produce a list of addresses. Easily extensible if you need more than the address.
internode-quota-check
This is an Internode usage meter . Here's what the command-line output looks like:
$ internode-quota-check
 mark: 21.583 GB (27.0%) and 5.1 days (16.5%) left of 80 GB, 24 Mb/s plan.
suter: 35.036 GB (63.7%) and 5.1 days (16.5%) left of 55 GB, 24 Mb/s plan.
To install, save 'internode-quota-check' to a location in your path and make it executable. If you have any questions, please get in touch with me.
This tool would not exist without Perl and the CPAN modules written by many authors around the world.
Errors like "Can't locate ModuleName.pm in @INC ..." mean that you need to install extra modules. On Debian and Debian-derived systems (for example, Ubuntu), this command should install all the necessary modules:
$ sudo aptitude install libreadonly-perl libtime-local-perl libwww-mechanize-perl
For other systems, there should be a similar procedure to take advantage of the local packaging tool, for example, yum or yast.
iptables-log-filter
Takes iptables logs and outputs a sanitized form, for example,
2003-10-06 23:46:04 tcp 192.0.2.1:1024 -> 192.0.2.2:135
key-party-signing
Assisted signing of all keys in a keyring stored in the current directory. I use this and other tools for Key Signing Parties.
key-party-table-latex
Filter for the output of "gpg --fingerprint" that produces good looking and easy to use LaTeX output. I use this and other tools for Key Signing Parties.
list-iana-reserved-ranges
Downloads http://www.iana.org/assignments/ipv4-address-space and outputs in CIDR notation. Very useful when combined with aggregate-cidr-addresses.
list-train-times
mailq-summary
Filter producing summary of sendmail's mailq output
mbox-archive
mbox-filter
Prepare a textual representation of the emails in a given folder.
mbox-prune
Straightforward script to remove old emails from an email folder.
mbox-to-maildir
modified-iso-build
modified-iso-install
modified-iso-install-raid
optus-websms
A perl script to send SMS messages using the http://www.info2you.com.au/ website. You need to get an account and pay your bills.
overview.cgi
Add-on for cricket to produce a summary like the one for this hosting site.
pacific-quota-check
Using WWW::Mechanize, pull usage data out of Pacific Internet's Highlander system from a cgi interface like this:
User: Pass: 
ping-state-trace
Ping a host and report on changes in the state, for example, slow or lost packets.
remote-ssh-gpg-backup
reprocess-mbox-via-procmail
send-emails-in-directory
slow-filter
Simple filter based on code from page 231 of _Programming Perl_, under the summary of 'syswrite'. It will delay its output according to the paramaters provided.
speech-biff
Biff variant with speech output.
split-exec
Filter-manager to fork a new child for each chunk of input. The assumption is that the child will take a "long time" before it produces any output but that once it starts producing output, it will complete "quickly".
squid-access-from-mysql
squid-access-into-mysql
ssh-https-tunnel
Use with ssh's ProxyCommand to tunnel ssh through http proxies using the CONNECT method.
syslog-grep-and-count
syslog-to-iso8601-utc
Filter syslog output to get sanatized timestamps, for example,
2003-10-06 20:33:53 zwitterion syslogd 1.0.0: restarting.
xbiff-checkcommand-maildir