dnstools 1.0.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.
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.expand_path('../../lib', __FILE__))
4
+
5
+ require 'dns_tools'
6
+ DNSTools::Commands.start
@@ -0,0 +1,16 @@
1
+ $LOAD_PATH.unshift(File.expand_path('../lib', __FILE__))
2
+ require 'dns_tools'
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'dnstools'
6
+ s.version = DNSTools::VERSION
7
+ s.platform = Gem::Platform::RUBY
8
+ s.summary = "Set of DNS CLI Tools"
9
+ s.files = Dir["**/*"]
10
+ s.bindir = "bin"
11
+ s.require_path = 'lib'
12
+ s.has_rdoc = false
13
+ s.author = "Adam Cooke"
14
+ s.email = "adam@atechmedia.com"
15
+ s.homepage = "http://atechmedia.com"
16
+ end
@@ -0,0 +1,12 @@
1
+ require 'thor'
2
+ require 'resolv'
3
+
4
+ module DNSTools
5
+ VERSION = '1.0.0'
6
+
7
+ class Commands < Thor
8
+ end
9
+
10
+ end
11
+
12
+ require 'dns_tools/serial_check'
@@ -0,0 +1,40 @@
1
+ module DNSTools
2
+ class Commands
3
+
4
+ desc "serial_check domain", "Checks the serial number for all a domain's nameservers is the same"
5
+ def serialcheck(domain)
6
+ root_resolver = Resolv::DNS.new(:nameserver => ['8.8.8.8'])
7
+
8
+ if domain.nil?
9
+ $stderr.puts "usage: check.rb "
10
+ end
11
+
12
+ nameservers = root_resolver.getresources(domain, Resolv::DNS::Resource::IN::NS)
13
+ serials = []
14
+
15
+ for ns in nameservers
16
+ ns_resolver = Resolv::DNS.new(:nameserver => [ns.name.to_s])
17
+
18
+ print ns.name.to_s.ljust(30)
19
+
20
+ soa = ns_resolver.getresource(domain, Resolv::DNS::Resource::IN::SOA)
21
+ if soa
22
+ puts "OK (#{soa.serial})"
23
+ serials << soa.serial
24
+ else
25
+ puts "No SOA record found"
26
+ end
27
+ $stdout.flush
28
+ end
29
+
30
+ if serials.uniq.size == 1
31
+ puts "\e[32mAll nameservers have the same serial\e[0m"
32
+ elsif serials.empty?
33
+ puts "No nameservers found for #{domain}"
34
+ else
35
+ puts "\e[31mNot all nameservers have the same records\e[0m"
36
+ end
37
+ end
38
+
39
+ end
40
+ end
metadata ADDED
@@ -0,0 +1,48 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dnstools
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Adam Cooke
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-11-15 00:00:00.000000000Z
13
+ dependencies: []
14
+ description:
15
+ email: adam@atechmedia.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - bin/dnstools
21
+ - dnstools.gemspec
22
+ - lib/dns_tools/serial_check.rb
23
+ - lib/dns_tools.rb
24
+ homepage: http://atechmedia.com
25
+ licenses: []
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ required_rubygems_version: !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ requirements: []
43
+ rubyforge_project:
44
+ rubygems_version: 1.8.10
45
+ signing_key:
46
+ specification_version: 3
47
+ summary: Set of DNS CLI Tools
48
+ test_files: []