NAME

Sendmail::AbuseIPDB - API access for IP address abuse database

SYNOPSIS

use Sendmail::AbuseIPDB;

my $db = Sendmail::AbuseIPDB->new(Key => '** your API key here **');

my $ip = '31.210.35.146';                       # IP of sender
my @all_data = $db->get( $ip );

foreach my $d ( @all_data )
{
    foreach my $c ( @{$d->{category}} )
    {
        print "DATE:$d->{created}   CATEGORY:" . $db->catg( $c ) . "\n";
    }
}

DESCRIPTION

Convenient toolbox for API access to https://www.abuseipdb.com/

Potentially for other sites with compatible API if you want to change the BaseURL.

METHODS

new( Key => $key, ... )

Additional parameters are: BaseURL, Days, Debug

get( $ip )

Do a query to check an IP address. Returns array of hash references, looking similar to this:

    {
        'created' => 'Sun, 17 Sep 2017 04:53:45 +0000',
        'country' => 'Turkey',
        'isoCode' => 'TR',
        'ip' => '31.210.35.146',
        'category' => [
                        14
                      ]
    }

catg( $number )

Convert the category from integer to printable string.

filter( $category, @data )

Return an array of those members in @data that match the given category.
The format of @data is same as the return array from get() so see above.
The $category can be either a number, or a printable string.

SEE ALSO

https://www.abuseipdb.com/api.html

https://www.abuseipdb.com/categories

Sendmail::PMilter

Example program abuseipdb_milter.pl for a simple way to block suspicious senders.

AUTHOR

<ttndy@cpan.org>

COPYRIGHT AND LICENSE

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.10.1 or,
at your option, any later version of Perl 5 you may have available.