net-dns-rbl 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README CHANGED
@@ -0,0 +1,16 @@
1
+ To use:
2
+
3
+ require 'net-dns-rbl'
4
+
5
+ ipCheck = Net::Dns::Rbl::Netchecker.new('ip_address_here')
6
+ listings = ipCheck.performLookups
7
+ - Returns nil if not listed
8
+
9
+ To add more lists:
10
+ ipCheck.addToLists('list_address_here')
11
+
12
+ To remove lists:
13
+ ipCheck.removeFromLists('list_address_here')
14
+
15
+ To see current lists you are checking against:
16
+ ipCheck.showCurrentLists
@@ -1 +1 @@
1
- Dir.chdir(File.dirname(__FILE__)) { Dir['buzzcore/*.rb'] }.each {|f| require f }
1
+ Dir.chdir(File.dirname(__FILE__)) { Dir['net-dns-rbl/*.rb'] }.each {|f| require f }
@@ -1,22 +1,56 @@
1
- require 'dnsblconstants'
2
-
3
- module net-dns-rbl
4
- class Netcheck
1
+ module Net
2
+ module Dns
3
+ module Rbl
4
+
5
+ require 'resolv'
6
+
7
+ class Netcheck
5
8
 
6
- def addList
7
- end
9
+ def initialize(ip)
10
+ raise ArgumentError, "Invalid IP specified" if !ip.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)
11
+ @reverseip = ip.split('.').reverse.join('.')
12
+ @lists = LISTS
13
+ end
8
14
 
9
- def removeList
10
-
11
- end
15
+ # Add additional dnsbl lookup lists
16
+ def addToLists(list)
17
+ @lists.push(list)
18
+ end
12
19
 
13
- def performLookups
20
+ # Remove an existing dnsbl list from the existing hash
21
+ def removeFromLists(list)
22
+ @lists.delete(list)
23
+ end
24
+
25
+ def showCurrentLists
26
+ @lists
27
+ end
14
28
 
15
- end
29
+ def performLookups
30
+ @lists.each do |l|
31
+ begin
32
+ host = @reverseip+'.'+l
33
+ resip = Resolv::getaddress(host)
34
+ if resip.match(/(127)\.\d{1}\.\d{1,3}\.\d{1,3}/)
35
+ @listed << l
36
+ end
37
+
38
+ rescue Exception => e
39
+ case e
40
+ when Resolv::ResolvError
41
+ nil
42
+ when Interrupt
43
+ puts "\nCaught signal SIGINT. Exiting..."
44
+ exit 1
45
+ else
46
+ puts ": \e[0;47mTIMEOUT\e[0m\n"
47
+ end
48
+ end
49
+ end
50
+ return @listed
51
+ end
16
52
 
17
- def setListHash
18
-
53
+ end
19
54
  end
20
-
21
55
  end
22
56
  end
@@ -1,7 +1,7 @@
1
1
  module Net
2
2
  module Dns
3
3
  module Rbl
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,20 @@
1
+ require 'test/unit'
2
+ require 'net-dns-rbl'
3
+
4
+ class TestNetDnsRbl < Test::Unit::TestCase
5
+ def test_initialization_and_list_array
6
+ assert_equal Net::Dns::Rbl::Netcheck.new('127.0.0.1').showCurrentLists.count, 16
7
+ end
8
+
9
+ def test_remove_list
10
+ netCheckObj = Net::Dns::Rbl::Netcheck.new('127.0.0.1')
11
+ netCheckObj.removeFromLists('xbl.spamhaus.org')
12
+ assert(!netCheckObj.showCurrentLists.include?('xbl.spamhaus.org'),"List was not removed from array")
13
+ end
14
+
15
+ def test_add_list
16
+ netCheckObj = Net::Dns::Rbl::Netcheck.new('127.0.0.1')
17
+ netCheckObj.addToLists('testlist.org')
18
+ assert(netCheckObj.showCurrentLists.include?('testlist.org'),"List was not added to array")
19
+ end
20
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-dns-rbl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -25,6 +25,7 @@ files:
25
25
  - lib/net-dns-rbl/version.rb
26
26
  - lib/net-dns-rbl.rb
27
27
  - README
28
+ - test/test_netdnsrbl.rb
28
29
  homepage: http://rubygems.org/gems/net-dns-rbl
29
30
  licenses: []
30
31
  post_install_message:
@@ -49,4 +50,5 @@ rubygems_version: 1.8.10
49
50
  signing_key:
50
51
  specification_version: 3
51
52
  summary: Utility gem to perform lookups against dns blacklists
52
- test_files: []
53
+ test_files:
54
+ - test/test_netdnsrbl.rb