Perl Module to query multiple blocklists in parallel


There are numerous RBL's, or Realtime Blackhole Lists which can be queried to find out if a particular IP address is associated with spam. Popular lists include SPEWS and SpamCop. There are dozens of such lists, and in some cases it is useful to query many of them.
Because RBL's are made available via DNS, they are normally queried with the gethostbyname(3) function which blocks while awaiting a UDP packet from the RBL server. Therefore querying multiple lists becomes slow and unreliable.
Net::RBLClient offers Perl programmers a faster solution - it sends all the DNS requests at once and then waits for responses. It can be invoked to return early if time is of the essence and we don't need all the replies.
Read the man page.


0.5 Added several lists; added spamalyze, a script which reads an mbox and applies all the RBL's to it, printing out a report. Useful for deciding which RBL's to use.
0.4 Removed three defunct lists:, and
0.3 Fixed a bug that was causing a verbose error message when conflicting domains came back from the DNS server.
0.2 Martin H. Sluka added support for TXT records, which some RBL's use to explain why an IP is listed. I removed the osirusoft lists and added


Net::RBLClient is distributed as a gzipped tarball. Download the latest version.


Net::RBLClient is free software distributed under the same terms as Perl itself.

Help and Feedback

If you have questions, comments or suggestions about Net::RBLClient, feel free to contact me at If you include Net::RBLClient in the subject field, it will help me sort my mail.