[arch-general] HTTP spam from China - CIDR compacting tool
Juha Kankare
juhakankare at outlook.com
Tue Feb 26 18:13:41 UTC 2019
On 26/02/2019 20:11, Genes Lists via arch-general wrote:
> Just an FYI if you pull cidr blocks by country, either doing it
> yourself directly from arin et al or by using someone elses list like
> ipdeny.com the CIDR blocks are not necessarily compacted.
>
> i.e. it is often not the most minimal CIDR representation. I use is
> this little python script, which works on list of CIDR blocks of IPV4 or
> IPV6, to compact the list of cidr blocks. I feed the output compacted
> CIDR blocks to the firewall ipset script.
>
>
> In case anyone finds this useful here is my CidrMerge.py :
>
> UseageL
>
> ----- cut here -----
> #!/usr/bin/python
> #
> # Read from stdin a list of cidr blocks and compacts them if possible
> # Resulting compacted CIDR blocks are written to stdout.
> # Works on any file with IPV4 or IPV6 cidr blocks.
> #
> # Usage : CidrMerge.py < file
> #
> # Gene C.
> #
> # 20180503
> #
>
> import sys
> import netaddr
>
>
> def main():
> num_args = len(sys.argv)
>
> #
> # Open file - read one line at a time and output
> #
>
> lines=sys.stdin.readlines()
> if len(lines) == 1:
> lines = lines[0].split()
>
> #
> # create merged set of entire input lines
> #
> set1 = netaddr.IPSet(lines)
>
> #
> # Write them out
> #
> for cidr in set1.iter_cidrs() :
> print (cidr)
>
> return
>
> # -----------------------------------------------------
> if __name__ == '__main__':
> main()
>
> #
> # -------------------- All Done ------------------------
My current script is just pulling cn.zone from ipdeny.com. This looks
super useful, I'm saving it. Thank you dude!
--
Regards, Juha Kankare
More information about the arch-general
mailing list