#! /usr/bin/awk -f # Generate DNS PTR from the output of sipcalc(1) # Copyright (C) 2010 Matous Jan Fialka, # Released under the terms of The MIT License # # Usage: sipcalc [/] | sipcalc-ptr.awk [prefix] [remark] [suffix] # This script is specific for the company I work! BEGIN { if(!(prefix = ARGV[1])) { prefix = "unassigned" } suffix = ARGV[3] if(!(id = ARGV[2])) { if(suffix) { id = suffix } else { id = "unknown" } } if(!suffix) { suffix = "casablanca.cz." } delete ARGV } /^Network address/ { network = $4 } /^Network mask \(bits\)/ { bits = $5 } /^Addresses in network/ { count = $5 count-- exit } END { split(network, o, /\./) printf ";;\t%s/%d\t%s\n", network, bits, id for(i = 0; i<=count; i++) { n = o[4] + i; if(i==0) { p = prefix "-net" } else { if(i==count) { p = prefix "-bcast" } else { p = prefix } } printf "%d\tIN\tPTR\t\t%s-%03d-%03d-%03d-%03d.%s\n", n, p, o[1], o[2], o[3], n, suffix } }