DNSBL - Domain Name System Realtime block list Lookup (aka drool)


    use DNSBL;
    $dnsbl = new DNSBL();
    $result = $dnsbl->checkIP(@array);
    if (defined($result)) {
      exit $result;
    } else { 
      exit 255;


    $cnt = $dnsbl->RBLCount();




DNSBL is a utility for checking for the existence ip addresses in a user selectable / specifiable group of realtime block databases.

These "DNS BL" (aka DNS RBL) databases are most widely used for protecting mail systems from unwanted mail by providing information about the ip address in question. The information can vary: some which country the IP address resides in; which ISP has been allocated the IP address; information about the configuration (or in most cases, the misconfiguration) of a mail server; indications if spam has known to have been sent out from the IP address; and / or many other different types of information that the internet community finds handy to be able to get their hands on.

Quite a few of these lists exists, and oftentimes one would like to discover what is being said about a particular IP address. There are several websites which exist which provide one with the ability to check some of lists which the administrators of the site want to check and there are programs which will check against a list of known lists (and some programs allow you to specify additional lists to check).

I wanted something that did a combination of what was currently available, and so I put together DNSBL. It is intended to be quick, customizable and able to be used from the command line or as part of a suite of web tools (which I am working on).


Usage of DNSBL is fairly straight forward.

new DNSBL(%params)

To set up a new instance, call the new method, which returns a DNSBL object.

    $rbl = new DNSBL ();

    $rbl = new DNSBL (
                      type => 'texturl', 
                      listed => 1,
                      notlisted => 0,
                      quiet => 0,
                      quit1stpos => 0,
                      showtxt => 1,
                      timeout => 5,

new accepts the following named parameters in %params:


For samples/tutorials, take a look at the acompanying programs in samples/ in the distribution directory.

If you have any questions, code samples, bug reports, or feedback, please email them to:


PJ Goodwin,


Copyright 2002 PJ Goodwin. All rights reserved.

This is program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.