Description
Add an IP reputation check that queries the exit IP against Tor exit node lists, DNSBL blacklists, and VPN/datacenter detection APIs. This answers the #1 question developers have: "why am I getting blocked/CAPTCHAd?"
proxychains-ng issues (#590, #563) show persistent demand. VPN data shows ~70% of blocking is IP-reputation-based.
Codebase starting point
core/checks/public_ip/check.go — template for adapter-based checks, stores public_ip in shared data
core/checks/register.go — where to register the new check
core/check/types.go — CategoryReputation already defined
Acceptance Criteria
Description
Add an IP reputation check that queries the exit IP against Tor exit node lists, DNSBL blacklists, and VPN/datacenter detection APIs. This answers the #1 question developers have: "why am I getting blocked/CAPTCHAd?"
proxychains-ng issues (#590, #563) show persistent demand. VPN data shows ~70% of blocking is IP-reputation-based.
Codebase starting point
core/checks/public_ip/check.go— template for adapter-based checks, storespublic_ipin shared datacore/checks/register.go— where to register the new checkcore/check/types.go—CategoryReputationalready definedAcceptance Criteria
core/checks/ip_reputation/check.goimplementingcheck.Checkercheck.torproject.org/torbulkexitlist— plain text, free, updated hourly)<IP-reversed>.zen.spamhaus.org— standard DNS lookup)is_proxy,is_vpn,is_tor,is_datacenter,is_abuser)public_ipcore/checks/register.gocore/checks/ip_reputation/check_test.go