dyndns package¶
Module contents¶
Set version.
Submodules¶
dyndns.cli module¶
Command line interface for the command dyndns-debug
dyndns.config module¶
Load and validate the configuration.
dyndns.dns_updates module¶
Interface for DNS updates.
- dyndns.dns_updates.update_dns_record(secret: str | None = None, fqdn: str | None = None, zone_name: str | None = None, record_name: str | None = None, ip_1: str | None = None, ip_2: str | None = None, ipv4: str | None = None, ipv6: str | None = None, ttl: int | None = None, config: Config | None = None) str [source]¶
Update a DNS record.
- Parameters:
secret – A password like secret string. The secret string has to be at least 8 characters long and only alphnumeric characters are allowed.
fqdn – The Fully-Qualified Domain Name (e. g.
www.example.com
). If you specify the argumentfqdn
, you don’t have to specify the argumentszone_name
andrecord_name
.zone_name – The zone name (e. g.
example.com
). You have to specify the argumentrecord_name
.record_name – The record name (e. g.
www
). You have to specify the argumentzone_name
.ip_1 – An IP address, can be version 4 or version 6.
ip_2 – A second IP address, can be version 4 or version 6. Must be a different version than
ip_1
.ipv4 – An IP address version 4.
ipv6 – An IP address version 6.
ttl – Time to live.
config (dict) – The configuration in the Python dictionary format (as returned by the function
validate_config()
).
dyndns.dns module¶
Query the DSN server using the package “dnspython”.
- class dyndns.dns.DnsUpdate(nameserver: str, names: Names, ipaddresses: IpAddressContainer | None = None, ttl: str | int | None = None)[source]¶
Bases:
object
Update the DNS server
- nameserver: str¶
The nameserver
- ipaddresses: IpAddressContainer | None¶
- ttl: int¶
dyndns.exceptions module¶
A collection of exceptions.
- exception dyndns.exceptions.DyndnsError[source]¶
Bases:
Exception
Base exception of the package
dyndns
.
- exception dyndns.exceptions.NamesError[source]¶
Bases:
DyndnsError
This error gets thrown by invalid DNS names.
- exception dyndns.exceptions.IpAddressesError[source]¶
Bases:
DyndnsError
This error gets thrown by invalid IP addresses.
- exception dyndns.exceptions.ConfigurationError[source]¶
Bases:
DyndnsError
dyndns configuration error.
- exception dyndns.exceptions.ParameterError[source]¶
Bases:
DyndnsError
Client side parameter error.
- exception dyndns.exceptions.DNSServerError[source]¶
Bases:
DyndnsError
Communicating with the external DNS server.
dyndns.html_template module¶
A collection of HTML template functions.
dyndns.ipaddresses module¶
Deal with ipv4 and ipv6 IP addresses.
- dyndns.ipaddresses.validate(address: Any, ip_version: Literal[4, 6] | None = None) tuple[str, Literal[4, 6]] [source]¶
- class dyndns.ipaddresses.IpAddressContainer(ip_1: str | None = None, ip_2: str | None = None, ipv4: str | None = None, ipv6: str | None = None, request: Request | None = None)[source]¶
Bases:
object
A container class to store and detect IP addresses in both versions (ipv4 and ipv6).
- Parameters:
ip_1 (str) – Am IP address of unkown version.
ip_2 (str) – An IP address of unkown version.
ipv4 (str) – An ipv4 IP address.
ipv6 (str) – An ipv6 IP address.
- request: Request¶
- ipv4: str | None¶
The ipv4 address to update the DNS record with.
- ipv6: str | None¶
The ipv6 address to update the DNS record with.
dyndns.log module¶
Bundle the logging functionality.
- class dyndns.log.UpdatesDB[source]¶
Bases:
object
- db_file: str¶
- connection: Connection¶
- cursor: Cursor¶
- class dyndns.log.Update[source]¶
Bases:
TypedDict
- update_time: str¶
- updated: bool¶
- fqdn: str¶
- record_type: str¶
- ip: str¶
- dyndns.log.msg(msg: str, log_level: Literal['CONFIGURATION_ERROR', 'DNS_SERVER_ERROR', 'PARAMETER_ERROR', 'UPDATED', 'UNCHANGED']) str ¶
dyndns.names module¶
Deal with different kind of names (FQDNs (Fully Qualified Domain Names), record and zone names)
record_name
+ zone_name
= fqdn
- class dyndns.names.Zone(zone_name: str, tsig_key: str)[source]¶
Bases:
object
- zone_name: str¶
- tsig_key: str¶
- class dyndns.names.Names(zones: Zones, fqdn: str | None = None, zone_name: str | None = None, record_name: str | None = None)[source]¶
Bases:
object
- record_name: str¶
The name of the resource record (e. g.
www.
).
- zone_name: str¶
The zone name (e. g.
example.com.
).
- fqdn: str¶
The Fully Qualified Domain Name (e. g.
www.example.com.
).
- tsig_key: str¶
The twig key (e. g.
tPyvZA==
)
dyndns.webapp module¶
Initialize the Flask app.