#!/usr/bin/awk -f # Enumerate all usable addresses in an IPv4 subnet # # By Stefan Tomanek # # Call like this: ipcalc 192.168.0.0/24 | ip-enumerate.awk function addr(a) { return a[1]"."a[2]"."a[3]"."a[4]; } function successor(a, n) { if (n>1 && (a[n] = (a[n]+1) % 255) == 0) { successor(a, n-1); } } $1 == "HostMin:" {MIN=$2} $1 == "HostMax:" {MAX=$2} END { split(MIN, a, "."); print addr(a); do { successor(a,4); print addr(a); } while (addr(a) != MAX); }