nadzoring.utils.validators module

Input validation utilities.

nadzoring.utils.validators.resolve_hostname(hostname: str) str | None[source]

Resolve a hostname to its IPv4 address via DNS.

Parameters:

hostname – Hostname to resolve (e.g. "example.com").

Returns:

IPv4 address string on success, or None if resolution fails.

Examples

>>> ip = resolve_hostname("localhost")
>>> ip == "127.0.0.1"
True
nadzoring.utils.validators.validate_domain(domain: str) bool[source]

Validate a domain name against standard naming conventions.

Checks length, optional trailing dot, and per-label character rules (1-63 characters, alphanumeric plus hyphens, no leading/trailing hyphens).

Parameters:

domain – Domain name string to validate.

Returns:

True if the domain name format is valid, False otherwise.

Examples

>>> validate_domain("example.com")
True
>>> validate_domain("-bad.example.com")
False
nadzoring.utils.validators.validate_ip(ip: str) bool[source]

Check whether a string is a valid IPv4 or IPv6 address.

Parameters:

ip – IP address string to validate.

Returns:

True if the string is a valid IP address, False otherwise.

Examples

>>> validate_ip("8.8.8.8")
True
>>> validate_ip("not-an-ip")
False