diff options
author | simonraven <simonraven@web> | 2010-02-07 20:29:24 +0000 |
---|---|---|
committer | Joey Hess <joey@finch.kitenet.net> | 2010-02-07 20:29:24 +0000 |
commit | ef65fd58cf77c27b9063b46b5b61b3090662ddce (patch) | |
tree | 565576a9b78d5654fd532eae04d928622668fc97 /doc | |
parent | 2e55a598350f422a8c064cad6bbba4e2fde13ed8 (diff) | |
download | ikiwiki-ef65fd58cf77c27b9063b46b5b61b3090662ddce.tar ikiwiki-ef65fd58cf77c27b9063b46b5b61b3090662ddce.tar.gz |
HTTP:BL plugin/inclusion
Diffstat (limited to 'doc')
-rw-r--r-- | doc/wishlist/http_bl_support.mdwn | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/doc/wishlist/http_bl_support.mdwn b/doc/wishlist/http_bl_support.mdwn new file mode 100644 index 000000000..30fb9c9b3 --- /dev/null +++ b/doc/wishlist/http_bl_support.mdwn @@ -0,0 +1,59 @@ +[Project Honeypot](http://projecthoneypot.org/) has an HTTP:BL API available to subscribed (it's free, accept donations) people/orgs. There's a basic perl package someone wrote, I'm including a copy here. + +[from here](http://projecthoneypot.org/board/read.php?f=10&i=112&t=112) + +<pre> +package Honeypot; + +use Socket qw/inet_ntoa/; + +my $dns = 'dnsbl.httpbl.org'; +my %types = ( +0 => 'Search Engine', +1 => 'Suspicious', +2 => 'Harvester', +4 => 'Comment Spammer' +); +sub query { +my $key = shift || die 'You need a key for this, you get one at http://www.projecthoneypot.org'; +my $ip = shift || do { +warn 'no IP for request in Honeypot::query().'; +return; +}; + +my @parts = reverse split /\./, $ip; +my $lookup_name = join'.', $key, @parts, $dns; + +my $answer = gethostbyname ($lookup_name); +return unless $answer; +$answer = inet_ntoa($answer); +my(undef, $days, $threat, $type) = split /\./, $answer; +my @types; +while(my($bit, $typename) = each %types) { +push @types, $typename if $bit & $type; +} +return { +days => $days, +threat => $threat, +type => join ',', @types +}; + +} +1; +</pre> + +From the page: + +> The usage is simple: + +> use Honeypot; +> my $key = 'XXXXXXX'; # your key +> my $ip = '....'; the IP you want to check +> my $q = Honeypot::query($key, $ip); + +> use Data::Dumper; +> print Dumper $q; + +Any chance of having this as a plugin? + +I could give it a go, too. Would be fun to try my hand at Perl. --[[simonraven]] |