Spaces:
Sleeping
Sleeping
| 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() | |