CheckIfSubdomain
Checks whether a given domain is a subdomain of one of the listed domains.
python · Filters And Transformers
Source
import demistomock as demisto # noqa: F401 import tldextract from CommonServerPython import * # noqa: F401 SUFFIX_LIST_URLS = ["file:///var/public_list.dat"] def check_if_subdomain(internal_domains: list, domains: list, use_tldextract_default_list: bool = False): # The suffix_list_urls will use a local file, instead of making http requests suffix_list_urls = None if use_tldextract_default_list else SUFFIX_LIST_URLS no_fetch_extract = tldextract.TLDExtract(suffix_list_urls=suffix_list_urls, cache_dir=None) # type: ignore[arg-type] for domain in domains: ext = no_fetch_extract(domain) top_domain_found = any(ext.registered_domain == internal_domain.replace("*.", "") for internal_domain in internal_domains) demisto.results(top_domain_found) def main(): """ Checks if a given domain (or domains) are subdomains of the specified internal domains. Args: internal_domains: List of domains defined by the user as internal domains: List of domains to check if they are subdomains of the internal ones. Returns: Bool: True if domain is a subdomain of one of the internal domains """ internal_domains = argToList(demisto.args()["right"]) domains = argToList(demisto.args()["left"]) try: check_if_subdomain(internal_domains=internal_domains, domains=domains, use_tldextract_default_list=False) except Exception as e: return_error(f"Failed to execute CheckIfSubdomain. Error: {e!s}") if __name__ == "__builtin__" or __name__ == "builtins": main()
README
Checks if a given domain is a subdomain of one of the listed domains.
Script Data
| Name | Description |
|---|---|
| Script Type | python3 |
| Tags | filter |
| Cortex XSOAR Version | 5.5.0 |
Inputs
| Argument Name | Description |
|---|---|
| left | A list of domains to check if they are subdomains of the internal assets. |
| right | A list of internal assets (for example, mycompany.com). |