ListCheck

Check your IP addresses and ranges against the spam blocklists. It looks up every address you give it, whole ranges included, on the DNS blocklists mail servers use, and shows which are listed, where, and where to ask for removal.

v0.1.0 · Apache-2.0 · Linux, macOS, Windows

ListCheck output: 127.0.0.2 listed on seven blocklists with removal links, three other addresses clean
127.0.0.2 is the test address every blocklist lists on purpose.

What it does

Why hosting providers use ListCheck

Ranges

Your whole network in one run

Give it addresses, ranges or a file of them. It checks every address and shows only what is listed, unless you ask for all.

  • 32 lookups at once by default
  • Ranges over 4,096 addresses need -max
  • Text, CSV or JSON

Blocklists

The lists mail servers use

SpamCop, UCEPROTECT levels 1 to 3, PSBL, DroneBL, Mailspike and S5H by default. Spamhaus ZEN and Barracuda when you opt in.

  • Removal link for each listing
  • Refused or silent lists are reported, not counted clean
  • Spamhaus with your resolver or a free DQS key

Automate

Built for cron

Exit status 0 means nothing is listed, 1 that something is and 2 an error, so it drops straight into a monitoring check.

  • Reads ranges from a file or stdin
  • Comments allowed in range files
  • One static binary

Install

Install ListCheck

With Go

go install github.com/frabsnet/listcheck/cmd/listcheck@latest

Download

Releases for Linux, macOS and Windows (amd64 and arm64):
github.com/frabsnet/listcheck/releases/latest

Details

Checks
IPv4 addresses and ranges
Runs on
Linux, macOS and Windows
Default lists
SpamCop, UCEPROTECT 1, 2 and 3, PSBL, DroneBL, Mailspike, S5H
Opt in
Spamhaus ZEN (-spamhaus), Barracuda (-barracuda)

Usage

Commands

listcheck 203.0.113.25One address
listcheck 203.0.113.0/24 198.51.100.0/26Whole ranges
listcheck -f ranges.txtOne address or range per line
listcheck -all -format csv -o report.csv 203.0.113.0/24Every address, as CSV
listcheck -listsShow the blocklists

ListCheck questions

Why does Spamhaus not answer through 8.8.8.8 or 1.1.1.1?
Spamhaus refuses queries that come through public resolvers. Use your own resolver with -resolver, or a free Spamhaus Data Query Service key with -dqs, which works from anywhere.
Does ListCheck check IPv6?
No. It checks IPv4 only; blocklists track IPv6 by other means.
Can I run it from cron?
Yes. It exits 0 when nothing is listed, 1 when something is and 2 on an error, so a cron job or monitoring check can act on the result.
What does a listing usually mean?
Mail or other traffic from that address reached the list's traps. Find and stop the cause first, or the address is usually listed again within hours.
How does Frabs help with blocklistings?
Most blocklistings on hosting networks start with one customer's VPS sending spam or scanning. Frabs stops that traffic at the hypervisor before your ranges are listed.

ListCheck shows you. Frabs acts.

Frabs watches every VPS around the clock, names the customer behind abuse and stops it with your rules.