net-dns 0.4 → 0.5.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/AUTHORS +1 -1
- data/README.rdoc +150 -0
- data/Rakefile +77 -65
- data/VERSION.yml +4 -0
- data/demo/check_soa.rb +1 -1
- data/demo/threads.rb +1 -0
- data/lib/net/dns/packet.rb +11 -0
- data/lib/net/dns/resolver.rb +35 -0
- data/net-dns.gemspec +90 -0
- data/test/net/dns/rr/test_types.rb +4 -4
- metadata +84 -78
- data/README +0 -55
- data/gemspec +0 -15
data/AUTHORS
CHANGED
data/README.rdoc
ADDED
@@ -0,0 +1,150 @@
|
|
1
|
+
= Net::DNS
|
2
|
+
|
3
|
+
Net::DNS is a DNS library written in pure Ruby. It started as a port of Perl Net::DNS module, but it evolved in time into a full Ruby library.
|
4
|
+
|
5
|
+
Features:
|
6
|
+
|
7
|
+
- Complete OO interface
|
8
|
+
- Clean and intuitive API
|
9
|
+
- Modular and flexible
|
10
|
+
|
11
|
+
== Install
|
12
|
+
|
13
|
+
Just use Rubygems:
|
14
|
+
|
15
|
+
$ sudo gem install net-dns
|
16
|
+
|
17
|
+
If you want to install from source, you can use Rake:
|
18
|
+
|
19
|
+
$ rake install
|
20
|
+
|
21
|
+
Or directly from install.rb
|
22
|
+
|
23
|
+
$ sudo ruby install.rb
|
24
|
+
|
25
|
+
== API Documentation
|
26
|
+
|
27
|
+
Visit the page http://marcoceresa.com/net-dns
|
28
|
+
|
29
|
+
== Trivial resolver
|
30
|
+
|
31
|
+
The simplest way to use the library is to invoke the Resolver() method:
|
32
|
+
|
33
|
+
require 'net/dns/resolver'
|
34
|
+
p Resolver("www.google.com")
|
35
|
+
|
36
|
+
The output is compatible with BIND zone files and it's the same you would get with the dig utility.
|
37
|
+
|
38
|
+
;; Answer received from localhost:53 (212 bytes)
|
39
|
+
;;
|
40
|
+
;; HEADER SECTION
|
41
|
+
;; id = 64075
|
42
|
+
;; qr = 1 opCode: QUERY aa = 0 tc = 0 rd = 1
|
43
|
+
;; ra = 1 ad = 0 cd = 0 rcode = NoError
|
44
|
+
;; qdCount = 1 anCount = 3 nsCount = 4 arCount = 4
|
45
|
+
|
46
|
+
;; QUESTION SECTION (1 record):
|
47
|
+
;; google.com. IN A
|
48
|
+
|
49
|
+
;; ANSWER SECTION (3 records):
|
50
|
+
google.com. 212 IN A 74.125.45.100
|
51
|
+
google.com. 212 IN A 74.125.67.100
|
52
|
+
google.com. 212 IN A 209.85.171.100
|
53
|
+
|
54
|
+
;; AUTHORITY SECTION (4 records):
|
55
|
+
google.com. 345512 IN NS ns1.google.com.
|
56
|
+
google.com. 345512 IN NS ns4.google.com.
|
57
|
+
google.com. 345512 IN NS ns2.google.com.
|
58
|
+
google.com. 345512 IN NS ns3.google.com.
|
59
|
+
|
60
|
+
;; ADDITIONAL SECTION (4 records):
|
61
|
+
ns1.google.com. 170275 IN A 216.239.32.10
|
62
|
+
ns2.google.com. 170275 IN A 216.239.34.10
|
63
|
+
ns3.google.com. 170275 IN A 216.239.36.10
|
64
|
+
ns4.google.com. 170275 IN A 216.239.38.10
|
65
|
+
|
66
|
+
|
67
|
+
An optional block can be passed yielding the Net::DNS::Packet object
|
68
|
+
|
69
|
+
Resolver("www.google.com") {|packet| puts packet.size + " bytes"}
|
70
|
+
#=> 484 bytes
|
71
|
+
|
72
|
+
Same for Net::DNS::Resolver.start():
|
73
|
+
|
74
|
+
Net::DNS::Resolver.start("google.com").answer.size
|
75
|
+
#=> 5
|
76
|
+
|
77
|
+
As optionals parameters, +TYPE+ and +CLASS+ can be specified.
|
78
|
+
|
79
|
+
p Net::DNS::Resolver.start("google.com", Net::DNS::MX)
|
80
|
+
|
81
|
+
;; Answer received from localhost:53 (316 bytes)
|
82
|
+
;;
|
83
|
+
;; HEADER SECTION
|
84
|
+
;; id = 59980
|
85
|
+
;; qr = 1 opCode: QUERY aa = 0 tc = 0 rd = 1
|
86
|
+
;; ra = 1 ad = 0 cd = 0 rcode = NoError
|
87
|
+
;; qdCount = 1 anCount = 4 nsCount = 4 arCount = 8
|
88
|
+
|
89
|
+
;; QUESTION SECTION (1 record):
|
90
|
+
;; google.com. IN MX
|
91
|
+
|
92
|
+
;; ANSWER SECTION (4 records):
|
93
|
+
google.com. 10800 IN MX 10 smtp2.google.com.
|
94
|
+
google.com. 10800 IN MX 10 smtp3.google.com.
|
95
|
+
google.com. 10800 IN MX 10 smtp4.google.com.
|
96
|
+
google.com. 10800 IN MX 10 smtp1.google.com.
|
97
|
+
|
98
|
+
== Handling the response packet
|
99
|
+
|
100
|
+
The method Net::DNS::Resolver.start is a wrapper around Resolver.new. It returns a new Net::DNS::Packet object.
|
101
|
+
|
102
|
+
A DNS packet is divided into 5 sections:
|
103
|
+
|
104
|
+
- header section # => a Net::DNS::Header object
|
105
|
+
- question section # => a Net::DNS::Question object
|
106
|
+
- answer section # => an Array of Net::DNS::RR objects
|
107
|
+
- authority section # => an Array of Net::DNS::RR objects
|
108
|
+
- additional section # => an Array of Net::DNS::RR objects
|
109
|
+
|
110
|
+
You can access each section by calling the attribute with the same name on a Packet object:
|
111
|
+
|
112
|
+
packet = Net::DNS::Resolver.start("google.com")
|
113
|
+
|
114
|
+
header = packet.header
|
115
|
+
answer = packet.answer
|
116
|
+
|
117
|
+
puts "The packet is #{packet.data.size} bytes"
|
118
|
+
puts "It contains #{header.anCount} answer entries"
|
119
|
+
|
120
|
+
answer.any? {|ans| p ans}
|
121
|
+
|
122
|
+
The output is
|
123
|
+
|
124
|
+
The packet is 378 bytes
|
125
|
+
It contains 3 answer entries
|
126
|
+
google.com. 244 IN A 74.125.45.100
|
127
|
+
google.com. 244 IN A 74.125.67.100
|
128
|
+
google.com. 244 IN A 209.85.171.100
|
129
|
+
|
130
|
+
A better way to handle the answer section is to use the iterators directly on a Packet object:
|
131
|
+
|
132
|
+
packet.each_address do |ip|
|
133
|
+
puts "#{ip} is alive" if Ping.pingecho(ip.to_s, 10, 80)
|
134
|
+
end
|
135
|
+
|
136
|
+
Gives:
|
137
|
+
|
138
|
+
74.125.45.100 is alive
|
139
|
+
74.125.67.100 is alive
|
140
|
+
209.85.171.100 is alive
|
141
|
+
|
142
|
+
|
143
|
+
== Licence
|
144
|
+
|
145
|
+
Net::DNS is distributed under the same license Ruby is.
|
146
|
+
|
147
|
+
== Author
|
148
|
+
|
149
|
+
(c) Marco Ceresa 2006
|
150
|
+
|
data/Rakefile
CHANGED
@@ -1,83 +1,95 @@
|
|
1
|
-
require 'rake/clean'
|
2
|
-
require 'rake/testtask'
|
3
|
-
require 'rake/rdoctask'
|
4
|
-
require 'rake/contrib/rubyforgepublisher'
|
5
|
-
require 'rake/gempackagetask'
|
6
|
-
|
7
1
|
require 'rubygems'
|
2
|
+
require 'rake'
|
8
3
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
end
|
4
|
+
#
|
5
|
+
# Gem specifications
|
6
|
+
#
|
7
|
+
SPEC = Gem::Specification.new do |s|
|
8
|
+
s.name = "net-dns"
|
9
|
+
s.authors = ["Marco Ceresa"]
|
10
|
+
s.email = "ceresa@gmail.com"
|
11
|
+
s.homepage = "http://github.com/bluemonk/net-dns"
|
12
|
+
s.platform = Gem::Platform::RUBY
|
13
|
+
s.summary = "Pure Ruby DNS library"
|
14
|
+
s.has_rdoc = true
|
15
|
+
s.extra_rdoc_files = ["README.rdoc","AUTHORS","INSTALL", "THANKS"]
|
16
|
+
s.description = "Net::DNS is a pure Ruby DNS library, with a clean OO interface and an extensible API"
|
17
|
+
s.rubyforge_project = "net-dns"
|
24
18
|
end
|
25
19
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
20
|
+
begin
|
21
|
+
require 'jeweler'
|
22
|
+
Jeweler::Tasks.new(SPEC)
|
23
|
+
Jeweler::RubyforgeTasks.new
|
24
|
+
rescue LoadError
|
25
|
+
puts "Jeweler not available."
|
32
26
|
end
|
33
27
|
|
34
|
-
|
35
|
-
|
36
|
-
|
28
|
+
require 'rake/testtask'
|
29
|
+
Rake::TestTask.new(:test) do |test|
|
30
|
+
test.libs << 'lib' << 'test'
|
31
|
+
test.pattern = 'test/**/*_test.rb'
|
32
|
+
test.verbose = true
|
37
33
|
end
|
38
34
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
35
|
+
begin
|
36
|
+
require 'rcov/rcovtask'
|
37
|
+
Rcov::RcovTask.new do |test|
|
38
|
+
test.libs << 'test'
|
39
|
+
test.pattern = 'test/**/*_test.rb'
|
40
|
+
test.verbose = true
|
41
|
+
end
|
42
|
+
rescue LoadError
|
43
|
+
task :rcov do
|
44
|
+
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
45
|
+
end
|
43
46
|
end
|
44
47
|
|
45
|
-
|
46
|
-
# Gem specifications
|
47
|
-
#
|
48
|
-
SPEC = Gem::Specification.new do |s|
|
49
|
-
s.name = "net-dns"
|
50
|
-
s.version = "#$VERSION"
|
51
|
-
s.author = "Marco Ceresa"
|
52
|
-
s.email = "ceresa@gmail.com"
|
53
|
-
s.homepage = "http://net-dns.rubyforge.org/"
|
54
|
-
s.platform = Gem::Platform::RUBY
|
55
|
-
s.summary = "Pure Ruby DNS library"
|
56
|
-
candidates = Dir.glob("**/*")
|
57
|
-
s.files = candidates.delete_if do |item|
|
58
|
-
item.include?("CVS") || item.include?("rdoc") || item.include?("pkg") || item.include?(".svn")
|
59
|
-
end
|
60
|
-
s.has_rdoc = true
|
61
|
-
s.extra_rdoc_files = ["README","AUTHORS","INSTALL", "THANKS"]
|
62
|
-
s.description = <<EOF
|
63
|
-
A pure Ruby DNS library, similar to the Perl Net::DNS library
|
64
|
-
EOF
|
65
|
-
end
|
48
|
+
task :default => :test
|
66
49
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
50
|
+
require 'rake/rdoctask'
|
51
|
+
Rake::RDocTask.new do |rdoc|
|
52
|
+
if File.exist?('VERSION.yml')
|
53
|
+
config = YAML.load(File.read('VERSION.yml'))
|
54
|
+
version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
55
|
+
else
|
56
|
+
puts "Not found!"
|
57
|
+
version = ""
|
58
|
+
end
|
59
|
+
|
60
|
+
rdoc.rdoc_dir = 'rdoc'
|
61
|
+
rdoc.title = "net-dns #{version}"
|
62
|
+
rdoc.rdoc_files.include('README*')
|
63
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
74
64
|
end
|
75
65
|
|
76
|
-
#
|
77
|
-
# RubyForge publisher
|
78
|
-
#
|
79
66
|
desc "Upload project on RubyForge"
|
80
67
|
task :upload do
|
81
68
|
rubyforge = Rake::RubyForgePublisher.new("net-dns","bluemonk")
|
82
69
|
rubyforge.upload
|
83
70
|
end
|
71
|
+
|
72
|
+
|
73
|
+
def egrep(pattern)
|
74
|
+
Dir['**/*.rb'].each do |fn|
|
75
|
+
count = 0
|
76
|
+
open(fn) do |f|
|
77
|
+
while line = f.gets
|
78
|
+
count += 1
|
79
|
+
if line =~ pattern
|
80
|
+
puts "#{fn}:#{count}:#{line}"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
desc "Look for TODO and FIXME tags in the code"
|
88
|
+
task :todo do
|
89
|
+
egrep /(FIXME|TODO|TBD)/
|
90
|
+
end
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
data/VERSION.yml
ADDED
data/demo/check_soa.rb
CHANGED
data/demo/threads.rb
CHANGED
data/lib/net/dns/packet.rb
CHANGED
@@ -457,6 +457,17 @@ module Net # :nodoc:
|
|
457
457
|
end
|
458
458
|
end
|
459
459
|
|
460
|
+
# Returns the packet size in bytes
|
461
|
+
#
|
462
|
+
# Resolver("www.google.com") do |packet|
|
463
|
+
# puts packet.size + " bytes"}
|
464
|
+
# end
|
465
|
+
# #=> 484 bytes
|
466
|
+
#
|
467
|
+
def size
|
468
|
+
data.size
|
469
|
+
end
|
470
|
+
|
460
471
|
# Chacks whether a query has returned a NXDOMAIN error,
|
461
472
|
# meaning the domain name queried doesn't exists.
|
462
473
|
#
|
data/lib/net/dns/resolver.rb
CHANGED
@@ -13,6 +13,29 @@ require 'net/dns/resolver/timeouts'
|
|
13
13
|
|
14
14
|
alias old_send send
|
15
15
|
|
16
|
+
#
|
17
|
+
# Resolver helper method
|
18
|
+
#
|
19
|
+
# Calling the resolver directly
|
20
|
+
#
|
21
|
+
# require 'net/dns/resolver'
|
22
|
+
# puts Resolver("www.google.com").answer.size
|
23
|
+
# #=> 5
|
24
|
+
#
|
25
|
+
# An optional block can be passed yielding the Net::DNS::Packet object
|
26
|
+
#
|
27
|
+
# Resolver("www.google.com") {|packet| puts packet.size + " bytes"}
|
28
|
+
# #=> 484 bytes
|
29
|
+
#
|
30
|
+
def Resolver(name,type=Net::DNS::A,cls=Net::DNS::IN,&blk)
|
31
|
+
obj = Net::DNS::Resolver.start(name,type,cls)
|
32
|
+
if block_given?
|
33
|
+
yield obj
|
34
|
+
else
|
35
|
+
return obj
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
16
39
|
module Net # :nodoc:
|
17
40
|
module DNS
|
18
41
|
|
@@ -1022,6 +1045,18 @@ module Net # :nodoc:
|
|
1022
1045
|
return arr.sort_by {|a| a.preference}
|
1023
1046
|
end
|
1024
1047
|
|
1048
|
+
#
|
1049
|
+
# Quick resolver method. Bypass the configuration using
|
1050
|
+
# the defaults.
|
1051
|
+
#
|
1052
|
+
# Example:
|
1053
|
+
#
|
1054
|
+
# puts Net::DNS::Resolver.start "www.google.com"
|
1055
|
+
#
|
1056
|
+
def self.start(*params)
|
1057
|
+
self.new.search(*params)
|
1058
|
+
end
|
1059
|
+
|
1025
1060
|
private
|
1026
1061
|
|
1027
1062
|
# Parse a configuration file specified as the argument.
|
data/net-dns.gemspec
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{net-dns}
|
5
|
+
s.version = "0.5.0"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Marco Ceresa"]
|
9
|
+
s.date = %q{2009-06-11}
|
10
|
+
s.description = %q{Net::DNS is a pure Ruby DNS library, with a clean OO interface and an extensible API}
|
11
|
+
s.email = %q{ceresa@gmail.com}
|
12
|
+
s.extra_rdoc_files = [
|
13
|
+
"AUTHORS",
|
14
|
+
"INSTALL",
|
15
|
+
"README.rdoc",
|
16
|
+
"THANKS"
|
17
|
+
]
|
18
|
+
s.files = [
|
19
|
+
"AUTHORS",
|
20
|
+
"CHANGELOG",
|
21
|
+
"INSTALL",
|
22
|
+
"README.rdoc",
|
23
|
+
"Rakefile",
|
24
|
+
"THANKS",
|
25
|
+
"VERSION.yml",
|
26
|
+
"demo/check_soa.rb",
|
27
|
+
"demo/threads.rb",
|
28
|
+
"lib/net/dns/dns.rb",
|
29
|
+
"lib/net/dns/header.rb",
|
30
|
+
"lib/net/dns/names/names.rb",
|
31
|
+
"lib/net/dns/packet.rb",
|
32
|
+
"lib/net/dns/question.rb",
|
33
|
+
"lib/net/dns/resolver.rb",
|
34
|
+
"lib/net/dns/resolver/socks.rb",
|
35
|
+
"lib/net/dns/resolver/timeouts.rb",
|
36
|
+
"lib/net/dns/rr.rb",
|
37
|
+
"lib/net/dns/rr/a.rb",
|
38
|
+
"lib/net/dns/rr/aaaa.rb",
|
39
|
+
"lib/net/dns/rr/classes.rb",
|
40
|
+
"lib/net/dns/rr/cname.rb",
|
41
|
+
"lib/net/dns/rr/hinfo.rb",
|
42
|
+
"lib/net/dns/rr/mr.rb",
|
43
|
+
"lib/net/dns/rr/mx.rb",
|
44
|
+
"lib/net/dns/rr/ns.rb",
|
45
|
+
"lib/net/dns/rr/null.rb",
|
46
|
+
"lib/net/dns/rr/ptr.rb",
|
47
|
+
"lib/net/dns/rr/soa.rb",
|
48
|
+
"lib/net/dns/rr/srv.rb",
|
49
|
+
"lib/net/dns/rr/txt.rb",
|
50
|
+
"lib/net/dns/rr/types.rb",
|
51
|
+
"net-dns.gemspec",
|
52
|
+
"setup.rb",
|
53
|
+
"test/net/dns/resolver/test_timeouts.rb",
|
54
|
+
"test/net/dns/rr/test_a.rb",
|
55
|
+
"test/net/dns/rr/test_classes.rb",
|
56
|
+
"test/net/dns/rr/test_ns.rb",
|
57
|
+
"test/net/dns/rr/test_types.rb",
|
58
|
+
"test/net/dns/test_header.rb",
|
59
|
+
"test/net/dns/test_packet.rb",
|
60
|
+
"test/net/dns/test_question.rb",
|
61
|
+
"test/net/dns/test_rr.rb"
|
62
|
+
]
|
63
|
+
s.homepage = %q{http://github.com/bluemonk/net-dns}
|
64
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
65
|
+
s.require_paths = ["lib"]
|
66
|
+
s.rubyforge_project = %q{net-dns}
|
67
|
+
s.rubygems_version = %q{1.3.3}
|
68
|
+
s.summary = %q{Pure Ruby DNS library}
|
69
|
+
s.test_files = [
|
70
|
+
"test/net/dns/test_header.rb",
|
71
|
+
"test/net/dns/rr/test_types.rb",
|
72
|
+
"test/net/dns/rr/test_a.rb",
|
73
|
+
"test/net/dns/rr/test_ns.rb",
|
74
|
+
"test/net/dns/rr/test_classes.rb",
|
75
|
+
"test/net/dns/resolver/test_timeouts.rb",
|
76
|
+
"test/net/dns/test_rr.rb",
|
77
|
+
"test/net/dns/test_packet.rb",
|
78
|
+
"test/net/dns/test_question.rb"
|
79
|
+
]
|
80
|
+
|
81
|
+
if s.respond_to? :specification_version then
|
82
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
83
|
+
s.specification_version = 3
|
84
|
+
|
85
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
86
|
+
else
|
87
|
+
end
|
88
|
+
else
|
89
|
+
end
|
90
|
+
end
|
@@ -62,10 +62,10 @@ class Test_Types < Test::Unit::TestCase
|
|
62
62
|
'ANY' => 255,
|
63
63
|
}
|
64
64
|
|
65
|
-
@regexp_string = "
|
66
|
-
"GPOS|RT|
|
67
|
-
"
|
68
|
-
"
|
65
|
+
@regexp_string = "UNSPEC|ATMA|EID|LOC|NSAP|ISDN|MX|ANY|MAILA|SRV|AFSDB|MD|" +
|
66
|
+
"A|MAILB|TKEY|GID|KX|GPOS|RT|HINFO|PTR|CNAME|MF|SIGZERO|DNSKEY|DS|AAAA|" +
|
67
|
+
"MG|UID|NSEC|NIMLOC|NSAP_PTR|X25|TXT|MR|SOA|NS|DNAME|CERT|SIG|AXFR|IXFR|" +
|
68
|
+
"UINFO|NAPTR|OPT|PX|RP|TSIG|SSHFP|KEY|MINFO|WKS|NULL|RRSIG|NXT|MB"
|
69
69
|
end
|
70
70
|
|
71
71
|
def test_default
|
metadata
CHANGED
@@ -1,102 +1,108 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.0
|
3
|
-
specification_version: 1
|
4
2
|
name: net-dns
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version:
|
7
|
-
date: 2007-05-13 00:00:00 +01:00
|
8
|
-
summary: Pure Ruby DNS library
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: ceresa@gmail.com
|
12
|
-
homepage: http://net-dns.rubyforge.org/
|
13
|
-
rubyforge_project:
|
14
|
-
description: A pure Ruby DNS library, similar to the Perl Net::DNS library
|
15
|
-
autorequire:
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 0.5.0
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- Marco Ceresa
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-06-11 00:00:00 +01:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Net::DNS is a pure Ruby DNS library, with a clean OO interface and an extensible API
|
17
|
+
email: ceresa@gmail.com
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- AUTHORS
|
24
|
+
- INSTALL
|
25
|
+
- README.rdoc
|
26
|
+
- THANKS
|
31
27
|
files:
|
32
|
-
-
|
33
|
-
- demo/check_soa.rb
|
34
|
-
- demo/threads.rb
|
35
|
-
- README
|
36
|
-
- setup.rb
|
28
|
+
- AUTHORS
|
37
29
|
- CHANGELOG
|
38
|
-
-
|
30
|
+
- INSTALL
|
31
|
+
- README.rdoc
|
39
32
|
- Rakefile
|
40
|
-
-
|
41
|
-
-
|
42
|
-
-
|
43
|
-
-
|
44
|
-
- lib/net/dns/names
|
45
|
-
- lib/net/dns/names/names.rb
|
46
|
-
- lib/net/dns/resolver
|
47
|
-
- lib/net/dns/resolver/timeouts.rb
|
48
|
-
- lib/net/dns/resolver/socks.rb
|
49
|
-
- lib/net/dns/resolver.rb
|
33
|
+
- THANKS
|
34
|
+
- VERSION.yml
|
35
|
+
- demo/check_soa.rb
|
36
|
+
- demo/threads.rb
|
50
37
|
- lib/net/dns/dns.rb
|
51
|
-
- lib/net/dns/rr.rb
|
52
|
-
- lib/net/dns/question.rb
|
53
38
|
- lib/net/dns/header.rb
|
39
|
+
- lib/net/dns/names/names.rb
|
54
40
|
- lib/net/dns/packet.rb
|
55
|
-
- lib/net/dns/
|
56
|
-
- lib/net/dns/
|
57
|
-
- lib/net/dns/
|
41
|
+
- lib/net/dns/question.rb
|
42
|
+
- lib/net/dns/resolver.rb
|
43
|
+
- lib/net/dns/resolver/socks.rb
|
44
|
+
- lib/net/dns/resolver/timeouts.rb
|
45
|
+
- lib/net/dns/rr.rb
|
46
|
+
- lib/net/dns/rr/a.rb
|
47
|
+
- lib/net/dns/rr/aaaa.rb
|
48
|
+
- lib/net/dns/rr/classes.rb
|
49
|
+
- lib/net/dns/rr/cname.rb
|
58
50
|
- lib/net/dns/rr/hinfo.rb
|
59
51
|
- lib/net/dns/rr/mr.rb
|
60
|
-
- lib/net/dns/rr/soa.rb
|
61
52
|
- lib/net/dns/rr/mx.rb
|
62
|
-
- lib/net/dns/rr/txt.rb
|
63
|
-
- lib/net/dns/rr/cname.rb
|
64
|
-
- lib/net/dns/rr/a.rb
|
65
|
-
- lib/net/dns/rr/aaaa.rb
|
66
53
|
- lib/net/dns/rr/ns.rb
|
67
|
-
- lib/net/dns/rr/
|
54
|
+
- lib/net/dns/rr/null.rb
|
68
55
|
- lib/net/dns/rr/ptr.rb
|
56
|
+
- lib/net/dns/rr/soa.rb
|
69
57
|
- lib/net/dns/rr/srv.rb
|
70
|
-
-
|
71
|
-
-
|
72
|
-
-
|
73
|
-
-
|
74
|
-
- test/net/dns/test_rr.rb
|
75
|
-
- test/net/dns/resolver
|
58
|
+
- lib/net/dns/rr/txt.rb
|
59
|
+
- lib/net/dns/rr/types.rb
|
60
|
+
- net-dns.gemspec
|
61
|
+
- setup.rb
|
76
62
|
- test/net/dns/resolver/test_timeouts.rb
|
77
|
-
- test/net/dns/test_header.rb
|
78
|
-
- test/net/dns/test_question.rb
|
79
|
-
- test/net/dns/rr
|
80
|
-
- test/net/dns/rr/test_types.rb
|
81
|
-
- test/net/dns/rr/test_ns.rb
|
82
63
|
- test/net/dns/rr/test_a.rb
|
83
64
|
- test/net/dns/rr/test_classes.rb
|
84
|
-
-
|
85
|
-
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
-
|
92
|
-
|
93
|
-
- INSTALL
|
94
|
-
- THANKS
|
95
|
-
executables: []
|
96
|
-
|
97
|
-
extensions: []
|
65
|
+
- test/net/dns/rr/test_ns.rb
|
66
|
+
- test/net/dns/rr/test_types.rb
|
67
|
+
- test/net/dns/test_header.rb
|
68
|
+
- test/net/dns/test_packet.rb
|
69
|
+
- test/net/dns/test_question.rb
|
70
|
+
- test/net/dns/test_rr.rb
|
71
|
+
has_rdoc: true
|
72
|
+
homepage: http://github.com/bluemonk/net-dns
|
73
|
+
licenses: []
|
98
74
|
|
75
|
+
post_install_message:
|
76
|
+
rdoc_options:
|
77
|
+
- --charset=UTF-8
|
78
|
+
require_paths:
|
79
|
+
- lib
|
80
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: "0"
|
85
|
+
version:
|
86
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: "0"
|
91
|
+
version:
|
99
92
|
requirements: []
|
100
93
|
|
101
|
-
|
102
|
-
|
94
|
+
rubyforge_project: net-dns
|
95
|
+
rubygems_version: 1.3.3
|
96
|
+
signing_key:
|
97
|
+
specification_version: 3
|
98
|
+
summary: Pure Ruby DNS library
|
99
|
+
test_files:
|
100
|
+
- test/net/dns/test_header.rb
|
101
|
+
- test/net/dns/rr/test_types.rb
|
102
|
+
- test/net/dns/rr/test_a.rb
|
103
|
+
- test/net/dns/rr/test_ns.rb
|
104
|
+
- test/net/dns/rr/test_classes.rb
|
105
|
+
- test/net/dns/resolver/test_timeouts.rb
|
106
|
+
- test/net/dns/test_rr.rb
|
107
|
+
- test/net/dns/test_packet.rb
|
108
|
+
- test/net/dns/test_question.rb
|
data/README
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
Net::DNS README
|
2
|
-
============
|
3
|
-
|
4
|
-
This is a port of the Perl Net::DNS module, written by Michael Fuhr
|
5
|
-
and now currently maintained by Olaf Kolkman (www.net-dns.org). It
|
6
|
-
keeps the same interfaces and function names, although has a bit
|
7
|
-
improved OO and some other stuff.
|
8
|
-
It can be used to query DNS servers for various kind of records, perform
|
9
|
-
zone transfer and dynamic updates. It has even a class for acting as a
|
10
|
-
nameserver.
|
11
|
-
This version is quite incomplete. You can use it as a resolver.
|
12
|
-
|
13
|
-
|
14
|
-
Requirements
|
15
|
-
------------
|
16
|
-
|
17
|
-
* Ruby 1.6
|
18
|
-
|
19
|
-
|
20
|
-
Install
|
21
|
-
-------
|
22
|
-
|
23
|
-
De-compress archive and enter its top directory.
|
24
|
-
Then type:
|
25
|
-
|
26
|
-
($ su)
|
27
|
-
# ruby setup.rb
|
28
|
-
|
29
|
-
These simple step installs this program under the default
|
30
|
-
location of Ruby libraries. You can also install files into
|
31
|
-
your favorite directory by supplying setup.rb some options.
|
32
|
-
Try "ruby setup.rb --help".
|
33
|
-
|
34
|
-
|
35
|
-
Usage
|
36
|
-
-----
|
37
|
-
|
38
|
-
Have a look on the manual pages.
|
39
|
-
In doc/ you will find many useful documents too.
|
40
|
-
|
41
|
-
|
42
|
-
License
|
43
|
-
-------
|
44
|
-
|
45
|
-
Net::DNS is distributed under the same license Ruby is.
|
46
|
-
|
47
|
-
|
48
|
-
Author
|
49
|
-
------
|
50
|
-
|
51
|
-
See AUTHORS
|
52
|
-
|
53
|
-
|
54
|
-
# $Id: README,v 1.2 2005/06/17 15:11:18 bluemonk Exp $
|
55
|
-
|
data/gemspec
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
SPEC = Gem::Specification.new do |s|
|
3
|
-
s.name = "net-dns"
|
4
|
-
s.version = "0.1"
|
5
|
-
s.author = "Marco Ceresa"
|
6
|
-
s.email = "ceresa@gmail.com"
|
7
|
-
s.homepage = "http://net-dns.rubyforge.org/"
|
8
|
-
s.platform = Gem::Platform::RUBY
|
9
|
-
s.summary = "Pure Ruby DNS library"
|
10
|
-
candidates = Dir.glob("{bin,demo,docs,lib,tests}/**/*")
|
11
|
-
s.files = candidates.delete_if do |item|
|
12
|
-
item.include?("CVS") || item.include?("rdoc") || item.include?(".svn")
|
13
|
-
end
|
14
|
-
s.has_rdoc = true
|
15
|
-
s.extra_rdoc_files = ["README","AUTHORS","INSTALL", "THANKS"]
|