dnstools 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []