CIDR string replacement

Royce Williams royce at techsolvency.com
Fri Oct 2 15:47:23 UTC 2020


The recent thread on CIDR aggregation cleanup scripts reminds me that I'm
looking for a similarly efficient implementation of a related tool. (I'm
gearing up to write my own in Perl, but don't want to reinvent the wheel.)

I'd like a fast, Unix-pipeline-ready tool that *replaces* all IPs within
that range with a supplied string, using a simple config file as input, and
ideally with autodetection of IP-address "word" boundaries, as in:

$ cat cidr-replace.cfg
105.170.75.0/24|[Unitel]
209.112.128.0/18|[ACS]
209.165.128.0/18|[GCI]
192.0.2.0/24|[TEST-NET-1]
198.51.100.0/24|[TEST-NET-2]
203.0.113.0/24|[TEST-NET-3]

$ echo "source,data1,data2,209.112.130.2,data3" | cidr-replace
cidr-replace.cfg
source,data1,data2,[ACS],data3


And I know this is kludgy, but it would also be useful for quick-and-dirty
work if it had a flag to "append" the string using a known delimiter, as in:

$ echo "source,data1,data2,209.112.130.2,data3" | cidr-replace --append ','
cidr-replace.cfg
source,data1,data2,209.112.130.2,[ACS],data3

(But I'm happy to hack that last functionality into an existing script.)

-- 
Royce
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nanog.org/pipermail/nanog/attachments/20201002/5f859bff/attachment.html>


More information about the NANOG mailing list