ahmedumeraziz commited on
Commit
130c60b
·
verified ·
1 Parent(s): 9dfb3d9

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -0
app.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import dns.resolver
3
+
4
+ RECORD_TYPES = ["A", "AAAA", "MX", "NS", "CNAME", "TXT", "SOA"]
5
+
6
+ def dns_lookup(domain, record_type):
7
+ try:
8
+ result = dns.resolver.resolve(domain, record_type)
9
+ output = f"🔍 DNS Lookup for `{record_type}` record(s) of `{domain}`:\n\n"
10
+ for rdata in result:
11
+ output += f"- {str(rdata)}\n"
12
+ return output
13
+ except dns.resolver.NoAnswer:
14
+ return f"⚠️ No {record_type} record found for {domain}."
15
+ except dns.resolver.NXDOMAIN:
16
+ return "❌ Domain does not exist."
17
+ except dns.resolver.Timeout:
18
+ return "❌ DNS request timed out."
19
+ except Exception as e:
20
+ return f"❌ Error: {str(e)}"
21
+
22
+ iface = gr.Interface(
23
+ fn=dns_lookup,
24
+ inputs=[
25
+ gr.Textbox(label="Enter Domain", placeholder="e.g. example.com"),
26
+ gr.Dropdown(choices=RECORD_TYPES, label="Record Type", value="A")
27
+ ],
28
+ outputs=gr.Markdown(label="DNS Records"),
29
+ title="🌐 DNS Lookup Tool",
30
+ description="Query DNS records (A, MX, CNAME, NS, TXT, SOA, etc.) for a domain."
31
+ )
32
+
33
+ if __name__ == "__main__":
34
+ iface.launch()