net-dns 0.4 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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"]
|