Go to main content

Mark Suter's Software

The following is the as-yet-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
fixme
create-snapshot-montages
fixme
ddns-scavenger
fixme
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. Try out the live demo.
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
fixme
force-link-up
fixme
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 curent 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
fixme
mailq-summary
Filter producing summary of sendmail's mailq output
mbox-archive
fixme
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
fixme
modified-iso-build
fixme
modified-iso-install
fixme
modified-iso-install-raid
fixme
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
fixme
reprocess-mbox-via-procmail
fixme
send-emails-in-directory
fixme
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
fixme
squid-access-into-mysql
fixme
ssh-https-tunnel
Use with ssh's ProxyCommand to tunnel ssh through http proxies using the CONNECT method.
syslog-grep-and-count
fixme
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
fixme
http://www.zwitterion.org/software/ was last updated by Mark Suter on 2013-06-06