feat: replace MaxMind ASN with iptoasn.com TSV backend
Drop GeoLite2-ASN.mmdb dependency (required license key) in favor of iptoasn.com ip2asn-v4.tsv (no auth, public domain). Bisect-based lookup in pure stdlib, downloaded via SOCKS5 in update-data.sh. Adds 30 test cases covering load, lookup, and command handler. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -124,6 +124,26 @@ update_geolite2() {
|
||||
done
|
||||
}
|
||||
|
||||
# -- iptoasn ASN database -----------------------------------------------------
|
||||
update_asn() {
|
||||
local dest="$DATA_DIR/ip2asn-v4.tsv"
|
||||
local url="https://iptoasn.com/data/ip2asn-v4.tsv.gz"
|
||||
mkdir -p "$DATA_DIR"
|
||||
dim "Downloading iptoasn database..."
|
||||
if curl -sS -fL --max-time 60 -o "$dest.gz" "$url" ||
|
||||
curl -sS -fL --socks5-hostname 127.0.0.1:1080 --max-time 60 \
|
||||
-o "$dest.gz" "$url"; then
|
||||
gunzip -f "$dest.gz"
|
||||
local count
|
||||
count=$(wc -l < "$dest")
|
||||
info "iptoasn: $count ranges"
|
||||
else
|
||||
rm -f "$dest.gz"
|
||||
err "Failed to download iptoasn database"
|
||||
((FAILURES++)) || true
|
||||
fi
|
||||
}
|
||||
|
||||
# -- Exploit-DB CSV -----------------------------------------------------------
|
||||
update_exploitdb() {
|
||||
local dest_dir="$DATA_DIR/exploitdb"
|
||||
@@ -151,6 +171,7 @@ echo
|
||||
update_tor
|
||||
update_iprep
|
||||
update_oui
|
||||
update_asn
|
||||
update_exploitdb
|
||||
update_geolite2
|
||||
|
||||
|
||||
Reference in New Issue
Block a user