nslookup: support lookup of multiple record types at once
This commit is contained in:
parent
7eddd9b9d7
commit
0038eecfbc
9
bert.py
9
bert.py
|
@ -460,13 +460,12 @@ def command_loop():
|
|||
except:
|
||||
say(channel, r+"You must specify a domain!")
|
||||
continue
|
||||
try:
|
||||
nstype = msg_parts[2]
|
||||
except:
|
||||
nstype = "A"
|
||||
nstype = msg_parts[2:]
|
||||
if not nstype:
|
||||
nstype = ["AAAA", "A"]
|
||||
print("got nslookup command with domain: "+str(nsdomain)+" and type: "+str(nstype))
|
||||
nsresult = nslookup(nsdomain, nstype)
|
||||
nslines = nsresult.split("\n")
|
||||
nslines = set(nsresult.split("\n"))
|
||||
for nsline in nslines:
|
||||
say(channel, y+" "+str(nsline))
|
||||
except Exception as err:
|
||||
|
|
25
nslookup.py
25
nslookup.py
|
@ -2,20 +2,21 @@
|
|||
|
||||
import dns.resolver
|
||||
|
||||
def nslookup(domain, typ="AAAA"):
|
||||
def nslookup(domain, types=["AAAA", "A"]):
|
||||
result = ""
|
||||
rcount = 0
|
||||
try:
|
||||
answer = dns.resolver.resolve(domain, typ)
|
||||
for rdata in answer:
|
||||
if rcount > 0:
|
||||
result += "\n"
|
||||
if hasattr(rdata, 'exchange'):
|
||||
result += str(rdata.preference)+" "+str(rdata.exchange)
|
||||
rcount += 1
|
||||
else:
|
||||
result += str(rdata)
|
||||
rcount += 1
|
||||
for typ in types:
|
||||
answer = dns.resolver.resolve(domain, typ)
|
||||
for rdata in answer:
|
||||
if rcount > 0:
|
||||
result += "\n"
|
||||
if hasattr(rdata, 'exchange'):
|
||||
result += str(rdata.preference)+" "+str(rdata.exchange)
|
||||
rcount += 1
|
||||
else:
|
||||
result += str(rdata)
|
||||
rcount += 1
|
||||
except dns.resolver.NXDOMAIN as err:
|
||||
result = str(err)
|
||||
except Exception as err:
|
||||
|
@ -25,7 +26,7 @@ def nslookup(domain, typ="AAAA"):
|
|||
return result
|
||||
|
||||
def main():
|
||||
print(nslookup("elmo.space", "AAAA"))
|
||||
print(nslookup("elmo.space"))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
Loading…
Reference in New Issue
Block a user