rubydns 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +62 -0
- data/bin/rd-dns-check +370 -0
- data/bin/rd-resolve-test +155 -0
- data/lib/rubydns.rb +108 -0
- data/lib/rubydns/resolv.rb +76 -0
- data/lib/rubydns/server.rb +170 -0
- data/lib/rubydns/transaction.rb +208 -0
- data/lib/rubydns/version.rb +24 -0
- data/test/daemon1.rb +66 -0
- data/test/daemon2.rb +82 -0
- data/test/example1.rb +58 -0
- data/test/log/Server/stderr.log +657 -0
- data/test/log/Server/stdout.log +0 -0
- data/test/soa_example1.rb +74 -0
- data/test/test_domains.txt +185 -0
- metadata +89 -0
File without changes
|
@@ -0,0 +1,74 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Copyright (c) 2009 Samuel Williams. Released under the GNU GPLv3.
|
4
|
+
#
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
|
18
|
+
require 'rubygems'
|
19
|
+
require 'rubydns'
|
20
|
+
|
21
|
+
$R = Resolv::DNS.new
|
22
|
+
Name = Resolv::DNS::Name
|
23
|
+
|
24
|
+
RubyDNS::run_server(:listen => [[:udp, "0.0.0.0", 5300]]) do
|
25
|
+
# SOA Record
|
26
|
+
# dig @localhost -p 5300 SOA mydomain.org
|
27
|
+
match("mydomain.org", :SOA) do |transaction|
|
28
|
+
#
|
29
|
+
# For more details about these headers please see:
|
30
|
+
# http://www.ripe.net/ripe/docs/ripe-203.html
|
31
|
+
#
|
32
|
+
|
33
|
+
transaction.respond!(
|
34
|
+
Name.create("ns.mydomain.org."), # Master Name
|
35
|
+
Name.create("admin.mydomain.org."), # Responsible Name
|
36
|
+
File.mtime(__FILE__).to_i, # Serial Number
|
37
|
+
1200, # Refresh Time
|
38
|
+
900, # Retry Time
|
39
|
+
3600000, # Maximum TTL / Expiry Time
|
40
|
+
172800 # Minimum TTL
|
41
|
+
)
|
42
|
+
end
|
43
|
+
|
44
|
+
# Default NS record
|
45
|
+
# dig @localhost -p 5300 NS
|
46
|
+
match("", :NS) do |transaction|
|
47
|
+
transaction.respond!(Name.create("ns.mydomain.org."))
|
48
|
+
end
|
49
|
+
|
50
|
+
# For this exact address record, return an IP address
|
51
|
+
# dig @localhost -p 5300 CNAME bob.mydomain.org
|
52
|
+
match(/([^.]+).mydomain.org/, :CNAME) do |match_data, transaction|
|
53
|
+
transaction.respond!(Name.create("www.mydomain.org"))
|
54
|
+
transaction.append_query!("www.mydomain.org", :A)
|
55
|
+
end
|
56
|
+
|
57
|
+
match("80.0.0.10.in-addr.arpa", :PTR) do |transaction|
|
58
|
+
transaction.respond!(Name.create("www.mydomain.org."))
|
59
|
+
end
|
60
|
+
|
61
|
+
match("www.mydomain.org", :A) do |transaction|
|
62
|
+
transaction.respond!("10.0.0.80", :record_type => :A)
|
63
|
+
end
|
64
|
+
|
65
|
+
match("ns.mydomain.org", :A) do |transaction|
|
66
|
+
transaction.respond!("10.0.0.10")
|
67
|
+
end
|
68
|
+
|
69
|
+
# Default DNS handler
|
70
|
+
otherwise do |transaction|
|
71
|
+
# Non-Existant Domain
|
72
|
+
transaction.failure!(:NXDomain)
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,185 @@
|
|
1
|
+
0.channel18.facebook.com
|
2
|
+
2leep.com
|
3
|
+
EVIntl-ocsp.verisign.com
|
4
|
+
EVSecure-ocsp.verisign.com
|
5
|
+
a.tribalfusion.com
|
6
|
+
a1059.g.akamai.net
|
7
|
+
a126.g.akamai.net
|
8
|
+
a1338.g.akamai.net
|
9
|
+
a199.gi3.akamai.net
|
10
|
+
a248.e.akamai.net
|
11
|
+
a696.g.akamai.net
|
12
|
+
a803.g.akamai.net
|
13
|
+
ad.doubleclick.net
|
14
|
+
ad.yieldmanager.com
|
15
|
+
ad1.netshelter.net
|
16
|
+
ad2.netshelter.net
|
17
|
+
address.yahoo.com
|
18
|
+
ads.adbrite.com
|
19
|
+
ads.trademe.co.nz
|
20
|
+
ads.tw.adsonar.com
|
21
|
+
ads1.perfadbrite.com.akadns.net
|
22
|
+
adsfac.us
|
23
|
+
ajax.googleapis.com
|
24
|
+
aleccolocco.blogspot.com
|
25
|
+
anycast-asia.quantserve.com.akadns.net
|
26
|
+
apps.facebook.com
|
27
|
+
appspot.l.google.com
|
28
|
+
ayako.oriontransfer.org
|
29
|
+
b.scorecardresearch.com
|
30
|
+
b1.adbrite.com
|
31
|
+
backend.deviantart.com
|
32
|
+
blog.nominet.org.uk
|
33
|
+
c.fsdn.com
|
34
|
+
cache-01.cleanprint.net
|
35
|
+
clients.l.google.com
|
36
|
+
clients1.google.com
|
37
|
+
cms.myspacecdn.com
|
38
|
+
configuration.apple.com
|
39
|
+
d.yimg.com
|
40
|
+
d1.openx.org
|
41
|
+
data.coremetrics.com
|
42
|
+
developer.apple.com
|
43
|
+
devimages.apple.com
|
44
|
+
dg.specificclick.net
|
45
|
+
digg.analytics.live.com
|
46
|
+
digg.com
|
47
|
+
e.vistaprint.com
|
48
|
+
englishrussia.com
|
49
|
+
feeds.digg.com
|
50
|
+
feeds.dzone.com
|
51
|
+
feeds.feedburner.com
|
52
|
+
feeds2.feedburner.com
|
53
|
+
filetransfer.msg.yahoo.com
|
54
|
+
filterforge.com
|
55
|
+
financier.oriontransfer.co.nz
|
56
|
+
gems.oriontransfer.org
|
57
|
+
ghs.l.google.com
|
58
|
+
googleads.g.doubleclick.net
|
59
|
+
googlemail-pop.l.google.com
|
60
|
+
groups.google.com
|
61
|
+
hat.bmanpn.com
|
62
|
+
hogbaysoftware.appspot.com
|
63
|
+
i.creativecommons.org
|
64
|
+
id.google.com
|
65
|
+
images.apple.com
|
66
|
+
images.macrumors.com
|
67
|
+
images.trademe.co.nz
|
68
|
+
img.slate.com
|
69
|
+
js.adsonar.com
|
70
|
+
js.revsci.net
|
71
|
+
kotaku.com
|
72
|
+
l.sharethis.com
|
73
|
+
l.yimg.com
|
74
|
+
lambda-the-ultimate.org
|
75
|
+
login.facebook.com
|
76
|
+
login.live.com
|
77
|
+
login.messaging.aol.com
|
78
|
+
login.oscar.aol.com
|
79
|
+
login.yahoo.com
|
80
|
+
lus.sharethis.com.akadns.net
|
81
|
+
m1.2mdn.net
|
82
|
+
mac.com
|
83
|
+
mail.google.com
|
84
|
+
mail.mac.com
|
85
|
+
mail.me.com
|
86
|
+
managingosx.wordpress.com
|
87
|
+
maps.google.com
|
88
|
+
marketing.vistaprint.com
|
89
|
+
media.digg.com
|
90
|
+
media.washingtonpost.com
|
91
|
+
messenger.hotmail.com
|
92
|
+
metrics.washingtonpost.com
|
93
|
+
metro-amz-lb1-1649407802.us-east-1.elb.amazonaws.com
|
94
|
+
mm.chitika.net
|
95
|
+
news.ycombinator.com
|
96
|
+
o.aolcdn.com
|
97
|
+
o.sa.aol.com
|
98
|
+
ocsp.verisign.net
|
99
|
+
odb.outbrain.com
|
100
|
+
omega.contacts.msn.com
|
101
|
+
omega.contacts.msn.com.nsatc.net
|
102
|
+
pagead2.googlesyndication.com
|
103
|
+
partner.googleadservices.com
|
104
|
+
partnerad.l.google.com
|
105
|
+
pixel.quantserve.com
|
106
|
+
pop.googlemail.com
|
107
|
+
ps.friendconnect.gmodules.com
|
108
|
+
publish.iwork.com
|
109
|
+
r1rk9np7bpcsfoeekl0khkd2juj27q3o.friendconnect.gmodules.com
|
110
|
+
rad.msn.com
|
111
|
+
regretfulmorning.com
|
112
|
+
resources.infolinks.com
|
113
|
+
rss.lists.apple.com
|
114
|
+
rss.slashdot.org
|
115
|
+
s24.sitemeter.com
|
116
|
+
s26.sitemeter.com
|
117
|
+
s7.addthis.com
|
118
|
+
safebrowsing-cache.google.com
|
119
|
+
safebrowsing.clients.google.com
|
120
|
+
scripts.chitika.net
|
121
|
+
scsa.msg.yahoo.com
|
122
|
+
seal.verisign.com
|
123
|
+
sec.westpac.co.nz
|
124
|
+
secure-nz.imrworldwide.com
|
125
|
+
shared-hosted-1561031087.us-east-1.elb.amazonaws.com
|
126
|
+
slashdot.org
|
127
|
+
slate.cleanprint.net
|
128
|
+
spacemusic.libsyn.com
|
129
|
+
ssl-google-analytics.l.google.com
|
130
|
+
ssl-hints.netflame.cc
|
131
|
+
ssl.google-analytics.com
|
132
|
+
static.ak.connect.facebook.com
|
133
|
+
static.ak.facebook.com
|
134
|
+
static.getclicky.com
|
135
|
+
stats.wordpress.com
|
136
|
+
syndication.thedailywtf.com
|
137
|
+
tags.expo9.exponential.com
|
138
|
+
talk.google.com
|
139
|
+
time.asia.apple.com
|
140
|
+
tools.google.com
|
141
|
+
votes.buzz.yahoo.com
|
142
|
+
widgets.outbrain.com
|
143
|
+
wiki.oriontransfer.org
|
144
|
+
www-google-analytics.l.google.com
|
145
|
+
www.acquire.co.nz
|
146
|
+
www.apple.com
|
147
|
+
www.apple.com.akadns.net
|
148
|
+
www.applejoe.com
|
149
|
+
www.apples.com
|
150
|
+
www.ascent.co.nz
|
151
|
+
www.bing.com
|
152
|
+
www.blogcdn.com
|
153
|
+
www.blogger.com
|
154
|
+
www.blogsmithmedia.com
|
155
|
+
www.co2stats.com
|
156
|
+
www.demonoid.com
|
157
|
+
www.digg.com
|
158
|
+
www.drobostore.com
|
159
|
+
www.dzone.com
|
160
|
+
www.em6live.co.nz
|
161
|
+
www.engadget.com
|
162
|
+
www.facebook.com
|
163
|
+
www.filterforge.com
|
164
|
+
www.friendconnect.gmodules.com
|
165
|
+
www.geekologie.com
|
166
|
+
www.google-analytics.com
|
167
|
+
www.google.com
|
168
|
+
www.idevgames.com
|
169
|
+
www.iwatchstuff.com
|
170
|
+
www.l.google.com
|
171
|
+
www.linuxquestions.org
|
172
|
+
www.lucidsystems.org
|
173
|
+
www.macrumors.com
|
174
|
+
www.michael.net.nz
|
175
|
+
www.potionfactory.com
|
176
|
+
www.recipepuppy.com
|
177
|
+
www.slashdot.org
|
178
|
+
www.slate.com
|
179
|
+
www.sqlite.org
|
180
|
+
www.trademe.co.nz
|
181
|
+
www.vistaprint.com
|
182
|
+
www.washingtonpost.com
|
183
|
+
www.westpac.co.nz
|
184
|
+
www4.l.google.com
|
185
|
+
z.digg.com
|
metadata
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rubydns
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 8
|
9
|
+
version: 0.1.8
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Samuel Williams
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2009-09-04 00:00:00 +12:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rexec
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
version: "0"
|
30
|
+
type: :runtime
|
31
|
+
version_requirements: *id001
|
32
|
+
description:
|
33
|
+
email:
|
34
|
+
executables:
|
35
|
+
- rd-resolve-test
|
36
|
+
- rd-dns-check
|
37
|
+
extensions: []
|
38
|
+
|
39
|
+
extra_rdoc_files:
|
40
|
+
- README.rdoc
|
41
|
+
files:
|
42
|
+
- lib/rubydns/resolv.rb
|
43
|
+
- lib/rubydns/server.rb
|
44
|
+
- lib/rubydns/transaction.rb
|
45
|
+
- lib/rubydns/version.rb
|
46
|
+
- lib/rubydns.rb
|
47
|
+
- test/daemon1.rb
|
48
|
+
- test/daemon2.rb
|
49
|
+
- test/example1.rb
|
50
|
+
- test/log/Server/stderr.log
|
51
|
+
- test/log/Server/stdout.log
|
52
|
+
- test/soa_example1.rb
|
53
|
+
- test/test_domains.txt
|
54
|
+
- bin/rd-dns-check
|
55
|
+
- bin/rd-resolve-test
|
56
|
+
- README.rdoc
|
57
|
+
has_rdoc: true
|
58
|
+
homepage: http://www.oriontransfer.co.nz/software/ruby-dns
|
59
|
+
licenses: []
|
60
|
+
|
61
|
+
post_install_message:
|
62
|
+
rdoc_options:
|
63
|
+
- --main
|
64
|
+
- README.rdoc
|
65
|
+
require_paths:
|
66
|
+
- lib
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
74
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
segments:
|
79
|
+
- 0
|
80
|
+
version: "0"
|
81
|
+
requirements: []
|
82
|
+
|
83
|
+
rubyforge_project:
|
84
|
+
rubygems_version: 1.3.6
|
85
|
+
signing_key:
|
86
|
+
specification_version: 2
|
87
|
+
summary: A simple DNS server DSL for Ruby.
|
88
|
+
test_files: []
|
89
|
+
|