dnsbl-client 0.2.4 → 0.3.0

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.tar.gz.sig CHANGED
@@ -1,2 +1 @@
1
- bb����/1����p-���$���k0V�9�hnΓ9&�_ $���
2
- �0�
1
+ ��THnC�bfz��(&:���@'��@�\��i�:���Yd�,h�l/2�r�}�,v���Rzj
@@ -27,11 +27,17 @@ module DNSBL
27
27
  # initialize a new DNSBL::Client object
28
28
  # the config file automatically points to a YAML file containing the list of DNSBLs and their return codes
29
29
  # the two-level-tlds file lists most of the two level tlds, needed for hostname to domain normalization
30
- def initialize(configfile = File.dirname(__FILE__)+"/dnsbl.yaml", ttldfile = File.dirname(__FILE__)+"/two-level-tlds")
30
+ def initialize(configfile = File.dirname(__FILE__)+"/dnsbl.yaml",
31
+ two_level_tldfile = File.dirname(__FILE__)+"/two-level-tlds",
32
+ three_level_tldfile = File.dirname(__FILE__)+"/three-level-tlds")
31
33
  @dnsbls = YAML.load(File.open(configfile).read)
32
- @ttld = []
33
- File.open(ttldfile).readlines.each do |l|
34
- @ttld << l.strip
34
+ @two_level_tld = []
35
+ @three_level_tld = []
36
+ File.open(two_level_tldfile).readlines.each do |l|
37
+ @two_level_tld << l.strip
38
+ end
39
+ File.open(three_level_tldfile).readlines.each do |l|
40
+ @three_level_tld << l.strip
35
41
  end
36
42
  @sockets = []
37
43
  config = Resolv::DNS::Config.new
@@ -51,10 +57,13 @@ module DNSBL
51
57
  parts = domain.gsub(/^\w{1,20}:\/\//,'').gsub(/[\/\?\:].*/,'').gsub(/.*?\@/,'').split(/\./)
52
58
  # grab the last two parts of the domain
53
59
  dom = parts[-2,2].join(".")
54
- # if the dom is in the ttld list, then use three parts
55
- if @ttld.index(dom)
60
+ # if the dom is in the two_level_tld list, then use three parts
61
+ if @two_level_tld.index(dom)
56
62
  dom = parts[-3,3].join(".")
57
63
  end
64
+ if @three_level_tld.index(dom)
65
+ dom = parts[-4,4].join(".")
66
+ end
58
67
  dom
59
68
  end
60
69
 
@@ -169,4 +178,4 @@ module DNSBL
169
178
  results
170
179
  end
171
180
  end
172
- end
181
+ end
@@ -0,0 +1,158 @@
1
+ act.edu.au
2
+ act.gov.au
3
+ bay.livefilestore.com
4
+ blog.friendster.com
5
+ blu.livefilestore.com
6
+ bo.nordland.no
7
+ bo.telemark.no
8
+ city.chiba.jp
9
+ city.fukuoka.jp
10
+ city.hiroshima.jp
11
+ city.kawasaki.jp
12
+ city.kitakyushu.jp
13
+ city.kobe.jp
14
+ city.kyoto.jp
15
+ city.nagoya.jp
16
+ city.niigata.jp
17
+ city.okayama.jp
18
+ city.osaka.jp
19
+ city.saitama.jp
20
+ city.sapporo.jp
21
+ city.sendai.jp
22
+ city.shizuoka.jp
23
+ city.yokohama.jp
24
+ cloud.prohosting.com
25
+ co.at.lv
26
+ co.at.pn
27
+ co.at.tc
28
+ co.uk.pn
29
+ co.uk.tc
30
+ com.au.ms
31
+ com.au.pn
32
+ com.au.tc
33
+ com.sapo.pt
34
+ do.sapo.pt
35
+ docs.google.com
36
+ en.alibaba.com
37
+ groups.live.com
38
+ gs.aa.no
39
+ gs.ah.no
40
+ gs.bu.no
41
+ gs.fm.no
42
+ gs.hl.no
43
+ gs.hm.no
44
+ gs.jan-mayen.no
45
+ gs.mr.no
46
+ gs.nl.no
47
+ gs.nt.no
48
+ gs.of.no
49
+ gs.ol.no
50
+ gs.oslo.no
51
+ gs.rl.no
52
+ gs.sf.no
53
+ gs.st.no
54
+ gs.svalbard.no
55
+ gs.tm.no
56
+ gs.tr.no
57
+ gs.va.no
58
+ gs.vf.no
59
+ heroy.more-og-romsdal.no
60
+ heroy.nordland.no
61
+ home.sapo.pt
62
+ homepage.t-online.de
63
+ lkd.co.im
64
+ ltd.co.im
65
+ me.uk.tc
66
+ metro.tokyo.jp
67
+ nes.akershus.no
68
+ nes.buskerud.no
69
+ no.sapo.pt
70
+ nsw.edu.au
71
+ nsw.gov.au
72
+ nt.edu.au
73
+ nt.gov.au
74
+ or.at.lv
75
+ org.uk.tc
76
+ os.hedmark.no
77
+ os.hordaland.no
78
+ pa.gov.pl
79
+ paginas.sapo.pt
80
+ perso.sfr.fr
81
+ plc.co.im
82
+ po.gov.pl
83
+ pref.aichi.jp
84
+ pref.akita.jp
85
+ pref.aomori.jp
86
+ pref.chiba.jp
87
+ pref.ehime.jp
88
+ pref.fukui.jp
89
+ pref.fukuoka.jp
90
+ pref.fukushima.jp
91
+ pref.gifu.jp
92
+ pref.gunma.jp
93
+ pref.hiroshima.jp
94
+ pref.hokkaido.jp
95
+ pref.hyogo.jp
96
+ pref.ibaraki.jp
97
+ pref.ishikawa.jp
98
+ pref.iwate.jp
99
+ pref.kagawa.jp
100
+ pref.kagoshima.jp
101
+ pref.kanagawa.jp
102
+ pref.kochi.jp
103
+ pref.kumamoto.jp
104
+ pref.kyoto.jp
105
+ pref.mie.jp
106
+ pref.miyagi.jp
107
+ pref.miyazaki.jp
108
+ pref.nagano.jp
109
+ pref.nagasaki.jp
110
+ pref.nara.jp
111
+ pref.niigata.jp
112
+ pref.oita.jp
113
+ pref.okayama.jp
114
+ pref.okinawa.jp
115
+ pref.osaka.jp
116
+ pref.saga.jp
117
+ pref.saitama.jp
118
+ pref.shiga.jp
119
+ pref.shimane.jp
120
+ pref.shizuoka.jp
121
+ pref.tochigi.jp
122
+ pref.tokushima.jp
123
+ pref.tottori.jp
124
+ pref.toyama.jp
125
+ pref.wakayama.jp
126
+ pref.yamagata.jp
127
+ pref.yamaguchi.jp
128
+ pref.yamanashi.jp
129
+ privat.t-online.de
130
+ profile.live.com
131
+ qld.edu.au
132
+ qld.gov.au
133
+ sa.edu.au
134
+ sa.gov.au
135
+ sakura.ne.jp
136
+ sande.more-og-romsdal.no
137
+ sande.vestfold.no
138
+ skydrive.live.com
139
+ so.gov.pl
140
+ spaces.live.com
141
+ spaces.msn.com
142
+ sr.gov.pl
143
+ starostwo.gov.pl
144
+ tas.edu.au
145
+ tas.gov.au
146
+ ug.gov.pl
147
+ um.gov.pl
148
+ upow.gov.pl
149
+ uw.gov.pl
150
+ valer.hedmark.no
151
+ valer.ostfold.no
152
+ vic.edu.au
153
+ vic.gov.au
154
+ wa.edu.au
155
+ wa.gov.au
156
+ web.aplus.net
157
+ web.fc2.com
158
+ web.officelive.com
@@ -16,4 +16,29 @@ class TestDnsblClient < Test::Unit::TestCase
16
16
  res = c.lookup("pfizer.viagra.aqybasej.gurdoctor.com")
17
17
  assert(res.length >= 0)
18
18
  end
19
+
20
+ should "normalize domains to two levels if it's neither in two-level nor three-level list" do
21
+ c = DNSBL::Client.new
22
+
23
+ assert_equal("example.org", c.normalize("example.org"))
24
+ assert_equal("example.org", c.normalize("www.example.org"))
25
+ assert_equal("example.org", c.normalize("foo.bar.baz.example.org"))
26
+ end
27
+
28
+ should "normaize domains to three levels if it's in two-level list" do
29
+ c = DNSBL::Client.new
30
+
31
+ assert_equal("example.co.uk", c.normalize("example.co.uk"))
32
+ assert_equal("example.co.uk", c.normalize("www.example.co.uk"))
33
+ assert_equal("example.co.uk", c.normalize("foo.bar.baz.example.co.uk"))
34
+ assert_equal("example.blogspot.com", c.normalize("example.blogspot.com"))
35
+ end
36
+
37
+ should "normalize domains to four levels if it's in three-level list" do
38
+ c = DNSBL::Client.new
39
+
40
+ assert_equal("example.act.edu.au", c.normalize("example.act.edu.au"))
41
+ assert_equal("example.act.edu.au", c.normalize("www.example.act.edu.au"))
42
+ assert_equal("example.act.edu.au", c.normalize("foo.bar.example.act.edu.au"))
43
+ end
19
44
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dnsbl-client
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 2
9
- - 4
10
- version: 0.2.4
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Chris Lee
@@ -37,7 +37,7 @@ cert_chain:
37
37
  6yhklP75
38
38
  -----END CERTIFICATE-----
39
39
 
40
- date: 2011-07-15 00:00:00 Z
40
+ date: 2011-07-16 00:00:00 Z
41
41
  dependencies:
42
42
  - !ruby/object:Gem::Dependency
43
43
  version_requirements: &id001 !ruby/object:Gem::Requirement
@@ -113,6 +113,7 @@ files:
113
113
  - lib/dnsbl-client.rb
114
114
  - lib/dnsbl-client/dnsbl-client.rb
115
115
  - lib/dnsbl-client/dnsbl.yaml
116
+ - lib/dnsbl-client/three-level-tlds
116
117
  - lib/dnsbl-client/two-level-tlds
117
118
  - LICENSE.txt
118
119
  - README.rdoc
metadata.gz.sig CHANGED
Binary file