#!/bin/sh


# script by L. Aaron Kaplan <kaplan@cert.at>
# written in spare time, Monday 16th of June 2014
# license: BSD license
# No warranty whatsoever, use at your own risk
#
# Fixed and make more readable by Klaus Darilion 2017-04-14
# un-aaron-ified by robertw 20250107

#
# Recommended usage:
#   crontab -l
#
#   25  0 *   *   *     ( cd /var/www/at-netblocks-ripe/ && ./fetch.sh )
#


COUNTRY=AT


#export PATH=/home/aaron/bin:$PATH
export http_proxy=http://proxy.cert.at:8080/
export https_proxy=http://proxy.cert.at:8080/
TODAY=$(date +"%Y-%m-%d")

wget --quiet -O - "https://stat.ripe.net/data/country-resource-list/data.json?resource=$COUNTRY" | jq ".data.resources.ipv4[], .data.resources.ipv6[]" | tr -d '"' | bzip2 > $TODAY-netblocks-ripe.txt.bz2

# Symlink auf neueste Version
rm -f current.txt.bz2
ln -s $TODAY-netblocks-ripe.txt.bz2 	current.txt.bz2

#split blocks and ranges
cat $TODAY-netblocks-ripe.txt.bz2 | bunzip2 | grep -- - > ranges
cat $TODAY-netblocks-ripe.txt.bz2 | bunzip2 | grep -v "-" > blocks

# deaggregate ranges
cat /dev/null > ranges2
for l in $( cat ranges ); do
  ipcalc $l | grep -v deaggregate >> ranges2
done

# join files
cat blocks ranges2 > current.txt

# cleaning
rm -f ranges ranges2 blocks
