Created
July 9, 2019 15:47
-
-
Save Bsebring/f3dd52a99f8035303e89fdb681961a2d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/perl | |
# This file was written as an executable to be used in the auto report function | |
# of csf and lfd. By replacing $YOUR_API_KEY below with your abuseipdb api key, | |
# allows you to use this code to integrate your csf system with abuseipdb.com | |
use strict; | |
use warnings; | |
use HTTP::Tiny; | |
use JSON; | |
# Gather the information from the commandline passed by lfd | |
my $ports = $ARGV[1]; | |
my $inout = $ARGV[3]; | |
my $message = $ARGV[5]; | |
my $logs = $ARGV[6]; | |
my $trigger = $ARGV[7]; | |
my $comment = $message . "; Ports: " . $ports . "; Direction: " . $inout | |
. "; Trigger: " . $trigger . "; Logs: " . $logs; | |
my $ua = HTTP::Tiny->new; | |
my $url = 'https://api.abuseipdb.com/api/v2/report'; | |
my $data = { | |
ip => $ARGV[0], | |
comment => $comment, | |
categories => 14 | |
}; | |
my %options = ( | |
"headers", { | |
"Key" => "$YOUR_API_KEY", | |
"Accept" => "application/json" | |
}, | |
); | |
my $response = $ua->post_form($url, $data, \%options); | |
my $json = JSON->new; | |
my $output = $json->pretty->encode($json->decode($response->{'content'})); | |
if ($response->{'status'} == 200){ | |
print "Report Succesful!\n" . $output; | |
} elsif ($response->{'status'} == 429) { | |
print $output; | |
} elsif ($response->{'status'} == 422) { | |
print $output; | |
} elsif ($response->{'status'} == 401) { | |
print $output; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
A perl script to report to abuseipdb.com