Spaces:
Runtime error
Runtime error
| import json | |
| import shutil | |
| import cachetools | |
| import gradio as gr | |
| import whois | |
| from tdagent.utils.json_utils import TDAgentJsonEncoder | |
| _WHOIS_BINARY = "whois" | |
| _CACHE_MAX_SIZE = 4096 | |
| _CACHE_TTL_SECONDS = 3600 | |
| def query_whois(url: str) -> str: | |
| """Query a WHOIS database to gather information about a url or domain. | |
| WHOIS information includes: domain names, IP address blocks and autonomous | |
| systems, but it is also used for a wider range of other information. | |
| Args: | |
| url: URL to query for WHOIS information. | |
| Returns: | |
| A JSON formatted string with the gathered information | |
| """ | |
| try: | |
| whois_result = whois.whois( | |
| url, | |
| command=shutil.which(_WHOIS_BINARY) is not None, | |
| executable=_WHOIS_BINARY, | |
| ) | |
| except whois.parser.PywhoisError as err: | |
| return json.dumps({"error": str(err)}) | |
| return json.dumps(whois_result, cls=TDAgentJsonEncoder) | |
| gr_query_whois = gr.Interface( | |
| fn=query_whois, | |
| inputs=["text"], | |
| outputs="text", | |
| title="Get WHOIS information for a given URL.", | |
| description="Query a WHOIS database to gather information about a url or domain.", | |
| ) | |