diff --git a/common.sh b/common.sh new file mode 100755 index 00000000..c7298ece --- /dev/null +++ b/common.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +[[ $DEBUG == true ]] && set -x + +log_info(){ + >&2 echo "INFO>" $@ +} + +get_asn(){ + local CONF_FILE=$1 + unset PATTERN + unset COUNTRY + source $CONF_FILE + grep -P "${COUNTRY}\$" asnames.txt | + grep -Pi "$PATTERN" | + awk '{print $1}' | + while read ASN; do + ASN=${ASN#AS} + if grep '\.' <(echo $ASN) > /dev/null; then + ASN_HIGH=${ASN%.*} + ASN_LOW=${ASN#*.} + ASN=$((ASN_HIGH * 65536 + ASN_LOW)) + fi + echo $ASN + done +} + +prepare_data(){ + wget http://bgp.potaroo.net/as1221/asnames.txt -O asnames.txt + wget http://archive.routeviews.org/dnszones/rib.bz2 -O rib.bz2 + log_info "runing bgpdump ..." + docker run -it --rm -v `pwd`:/bgpdump -w /bgpdump gaoyifan/bgpdump bgpdump -m -O rib.txt rib.bz2 + log_info "done" +} diff --git a/generate.sh b/generate.sh index 9a15e25c..00215e96 100755 --- a/generate.sh +++ b/generate.sh @@ -1,43 +1,14 @@ #!/usr/bin/env bash -if [[ -f /etc/kern_loader.conf ]]; then - alias grep='ggrep' -fi - -get_asn(){ - CONF_FILE=$1 - unset PATTERN - unset COUNTRY - source $CONF_FILE - grep -P "${COUNTRY}\$" asnames.txt | - grep -Pi "$PATTERN" | - awk '{print $1}' | - while read ASN; do - ASN=${ASN#AS} - if grep '\.' <(echo $ASN) > /dev/null; then - ASN_HIGH=${ASN%.*} - ASN_LOW=${ASN#*.} - ASN=$((ASN_HIGH * 65536 + ASN_LOW)) - fi - echo $ASN - done -} - -prepare_data(){ - wget http://bgp.potaroo.net/as1221/asnames.txt - wget http://archive.routeviews.org/dnszones/rib.bz2 - >&2 echo "runing bgpdump ..." - docker run -it --rm -v `pwd`:/bgpdump -w /bgpdump gaoyifan/bgpdump bgpdump -m -O rib.txt rib.bz2 - >&2 echo "done" -} +source common.sh set -e -[[ $DEBUG != true ]] && prepare_data +[[ $SKIP_DATA_PREPARATION != true ]] && prepare_data mkdir -p result -find operator -type f -name '*.conf' | +ls operator/*.conf | while read file; do operator=${file%.*} operator=${operator##*/} - >&2 echo "generating IP list of $operator ..." - get_asn $file | xargs bgptools | docker run -i --rm gaoyifan/cidrmerge > result/$operator.txt - >&2 echo "done" + log_info "generating IP list of $operator ..." + get_asn $file | tee /dev/stderr | xargs bgptools | docker run -i --rm gaoyifan/cidrmerge > result/$operator.txt + log_info "done" done diff --git a/stat.sh b/stat.sh index 18ae16ec..c8d5b44b 100755 --- a/stat.sh +++ b/stat.sh @@ -1,5 +1,6 @@ #!/usr/bin/env bash +source common.sh cd result ls *.txt | while read file; do