nadzoring.utils.validators module¶
Input validation utilities.
Each function is responsible for a single validation concern (SRP).
Validators return bool and never raise; higher-level callers that
want exceptions should use nadzoring.utils.errors.
- nadzoring.utils.validators.resolve_hostname(hostname: str) str | None[source]¶
Resolve a hostname to its IPv4 address via the system DNS resolver.
- Parameters:
hostname – Hostname to resolve (e.g.
"example.com").- Returns:
IPv4 address string on success, or
Noneif resolution fails.
Examples
>>> ip = resolve_hostname("localhost") >>> ip == "127.0.0.1" True >>> resolve_hostname("this.domain.does.not.exist.invalid") # returns None
- nadzoring.utils.validators.validate_domain(domain: str) bool[source]¶
Validate a domain name against standard naming conventions.
Checks total length (≤ 255), optional trailing dot, and per-label character rules (1-63 chars, alphanumeric + hyphens, no leading or trailing hyphens).
- Parameters:
domain – Domain name string to validate.
- Returns:
Trueif the format is valid,Falseotherwise.
Examples
>>> validate_domain("example.com") True >>> validate_domain("-bad.example.com") False >>> validate_domain("a" * 256) 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:
Trueif the string is a valid address,Falseotherwise.
Examples
>>> validate_ip("8.8.8.8") True >>> validate_ip("::1") True >>> validate_ip("not-an-ip") False
- nadzoring.utils.validators.validate_ipv4(ip: str) bool[source]¶
Check whether a string is a valid IPv4 address.
- Parameters:
ip – IP address string to validate.
- Returns:
Truefor valid IPv4 addresses only.
Examples
>>> validate_ipv4("192.168.1.1") True >>> validate_ipv4("::1") False
- nadzoring.utils.validators.validate_ipv6(ip: str) bool[source]¶
Check whether a string is a valid IPv6 address.
- Parameters:
ip – IP address string to validate.
- Returns:
Truefor valid IPv6 addresses only.
Examples
>>> validate_ipv6("::1") True >>> validate_ipv6("8.8.8.8") False
- nadzoring.utils.validators.validate_port(port: int) bool[source]¶
Check whether an integer is a valid TCP/UDP port number.
- Parameters:
port – Port number to validate.
- Returns:
Truewhen port is in the range 1-65535.
Examples
>>> validate_port(80) True >>> validate_port(0) False >>> validate_port(65536) False