mirror of
https://github.com/gaoyifan/china-operator-ip.git
synced 2025-07-13 21:02:37 +08:00
57 lines
1.2 KiB
Bash
Executable File
57 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
[[ $DEBUG == true ]] && set -x
|
|
|
|
log_info(){
|
|
>&2 echo "INFO>" $@
|
|
}
|
|
|
|
get_asn(){
|
|
local CONF_FILE=$1
|
|
unset PATTERN
|
|
unset COUNTRY
|
|
unset EXCLUDE
|
|
source $CONF_FILE
|
|
EXCLUDE=${EXCLUDE:-"^$"}
|
|
grep -P "${COUNTRY}\$" asnames.txt |
|
|
grep -Pi "$PATTERN" |
|
|
grep -vPi "$EXCLUDE" |
|
|
awk '{gsub(/AS/, ""); print $1 }'
|
|
}
|
|
|
|
prepare_data_v4(){
|
|
bgpkit-broker latest -c rrc00 --json | jq -c '.[] | select( .data_type | contains("rib")) | .url' | head -n 1 | xargs curl -sSL -o rib.gz
|
|
stat rib.gz
|
|
log_info "runing bgpdump v4 ..."
|
|
bgpdump -m -O rib.txt rib.gz
|
|
stat rib.txt
|
|
log_info "finish bgpdump v4"
|
|
}
|
|
prepare_data_v6(){
|
|
bgpkit-broker latest -c route-views6 --json | jq -c '.[] | select( .data_type | contains("rib")) | .url' | head -n 1 | xargs curl -sSL -o rib6.bz2
|
|
stat rib6.bz2
|
|
log_info "runing bgpdump v6 ..."
|
|
bgpdump -m -O rib6.txt rib6.bz2
|
|
stat rib6.txt
|
|
log_info "finish bgpdump v6"
|
|
}
|
|
prepare_data(){
|
|
curl -sSL https://bgp.potaroo.net/cidr/autnums.html | awk '-F[<>]' '{print $3,$5}' | grep '^AS' > asnames.txt &
|
|
prepare_data_v4 &
|
|
prepare_data_v6 &
|
|
wait_exit
|
|
}
|
|
|
|
wait_exit(){
|
|
local oldstate=$(set +o)
|
|
set +e
|
|
local s=0
|
|
while [[ $s -ne 127 ]]; do
|
|
[[ $s -ne 0 ]] && exit $s
|
|
wait -n
|
|
s=$?
|
|
done
|
|
eval "$oldstate"
|
|
return 0
|
|
}
|