Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A visualiser of IP subnet allocations on a hilbert space-filling curve

branch: prototype

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 examples
Octocat-spinner-32 colour.c
Octocat-spinner-32 colour.h
Octocat-spinner-32 hilbert.c
Octocat-spinner-32 hilbert.h
Octocat-spinner-32 lgpl.txt
Octocat-spinner-32 main.c
Octocat-spinner-32 main.h
Octocat-spinner-32 svg.c
Octocat-spinner-32 svg.h


This utility takes as input an IPv6 subnet and a list of smaller subnets within it. It then draws the larger subnet as a two dimensional hilbert space-filling curve, and plots the enclosed subnets within it. The utility outputs this in Scalable Vector Graphics (SVG) format.

Input and Output

By default the program reads from stdin and writes to stdout, you may use the flags --input and --output to change this. The first line read from the input is deemed to be the master, encompassing, subnet. Thereafter, each line is assumed to be an allocation within that subnet. Allocations may include a text label after the network address, separating them with whitespace characters.


You can find examples in the examples directory.

Planned features (aka. TODO List)

  • Ignore Comment lines
  • IPv4 support
  • Different output formats
  • Subnet tree boundary markers


This software is published under the LGPLv3 licence.


You can follow development at


Please forgive my messy C code ;)


  • Marcus Cobden
Something went wrong with that request. Please try again.