DEV Community

Daniel Igel
Daniel Igel

Posted on

Block abusive IPs before they hit your app: one call against 7 DNSBLs

Querying DNSBLs by hand means reversing the IP, appending each blacklist's zone, doing a DNS query per list, and interpreting the return codes — times seven if you want decent coverage. It's a lot of boilerplate for "is this IP a known spam/abuse source?".

One GET checks an IP against Spamhaus, Barracuda, SORBS, SpamCop, UCEPROTECT and more, and tells you which lists flagged it:

curl --request GET \
  --url 'https://ip-reputation-blacklist-checker-api.p.rapidapi.com/api/v1/check?ip=1.2.3.4' \
  --header 'x-rapidapi-key: YOUR_RAPIDAPI_KEY' \
  --header 'x-rapidapi-host: ip-reputation-blacklist-checker-api.p.rapidapi.com'
Enter fullscreen mode Exit fullscreen mode

You get a per-list breakdown plus an overall verdict. GET /api/v1/lists shows the active blacklists, and POST /api/v1/check/batch checks up to 10 IPs at once — good for scoring signups or filtering a request log.

Free tier on RapidAPI: https://rapidapi.com/danieligel/api/ip-reputation-blacklist-checker-api

I built this to gate form submissions without standing up my own DNSBL resolver. How do you currently screen inbound IPs?

Top comments (0)