56 lines
1.5 KiB
Ruby
56 lines
1.5 KiB
Ruby
require 'cinch'
|
|
require 'resolv'
|
|
require 'socket'
|
|
require_relative '../classes/Util.rb'
|
|
class DigDeep
|
|
include Cinch::Plugin
|
|
include Hooks::ACLHook
|
|
include Util::PluginHelper
|
|
@clist = %w{dig}
|
|
@@commands["dig"] = ":dig <record type> <host> [@<nameserver>] - perform a dns lookup for the given record type and host (use @host optionally to specify ns)"
|
|
set :prefix, /^:/
|
|
match /dig (\w+?) (.+?)(?:@(.+))?$/, method: :dig
|
|
|
|
def dig(m, rec, host, ns=nil)
|
|
recs = [
|
|
"A", "AAAA", "AFSDB",
|
|
"APL", "AXFR", "CAA",
|
|
"CDNSKEY", "CDS", "CERT",
|
|
"CNAME", "CSYNC", "DHCID",
|
|
"DLV", "DNAME", "DNSKEY",
|
|
"DS", "EUI48", "EUI64",
|
|
"HINFO", "HIP", "HTTPS",
|
|
"IPSECKEY", "IXFR", "KEY",
|
|
"KX", "LOC", "MX",
|
|
"NAPTR", "NS", "NSEC3",
|
|
"NSEC3PARAM", "NSEC", "NXT",
|
|
"OPENPGPKEY", "OPT", "PTR",
|
|
"RP", "RRSIG", "SIG",
|
|
"SMIMEA", "SOA", "SSHFP",
|
|
"SVCB", "SRV", "TA",
|
|
"TKEY", "TLSA", "TSIG",
|
|
"TXT", "URI", "ZONEMD"
|
|
]
|
|
resp = ""
|
|
puts "recs = #{recs.inspect}"
|
|
puts "recs.include? rec.upcase: #{(recs.include? rec.upcase).inspect}"
|
|
ns ||= Resolv::DNS::Config.default_config_hash[:nameserver].sample
|
|
puts "rec upcase: #{rec.upcase}"
|
|
puts "dig #{rec} #{host} via namserver #{ns}"
|
|
begin
|
|
if(!recs.include? rec.upcase)
|
|
raise Exception.new "lol wtf kinda record is #{rec}?"
|
|
end
|
|
|
|
rescue Exception => e
|
|
resp = e.message
|
|
ensure
|
|
puts "resp: #{resp}"
|
|
#m.reply resp
|
|
end
|
|
|
|
end
|
|
end
|
|
=begin
|
|
=end
|