DNS_Lookup / app.py
ahmedumeraziz's picture
Create app.py
130c60b verified
import gradio as gr
import dns.resolver
RECORD_TYPES = ["A", "AAAA", "MX", "NS", "CNAME", "TXT", "SOA"]
def dns_lookup(domain, record_type):
try:
result = dns.resolver.resolve(domain, record_type)
output = f"πŸ” DNS Lookup for `{record_type}` record(s) of `{domain}`:\n\n"
for rdata in result:
output += f"- {str(rdata)}\n"
return output
except dns.resolver.NoAnswer:
return f"⚠️ No {record_type} record found for {domain}."
except dns.resolver.NXDOMAIN:
return "❌ Domain does not exist."
except dns.resolver.Timeout:
return "❌ DNS request timed out."
except Exception as e:
return f"❌ Error: {str(e)}"
iface = gr.Interface(
fn=dns_lookup,
inputs=[
gr.Textbox(label="Enter Domain", placeholder="e.g. example.com"),
gr.Dropdown(choices=RECORD_TYPES, label="Record Type", value="A")
],
outputs=gr.Markdown(label="DNS Records"),
title="🌐 DNS Lookup Tool",
description="Query DNS records (A, MX, CNAME, NS, TXT, SOA, etc.) for a domain."
)
if __name__ == "__main__":
iface.launch()