возможно будет клиент ddns
pddnsc | ||
settings | ||
state | ||
.dockerignore | ||
.gitignore | ||
Dockerfile | ||
LICENSE | ||
README.md | ||
requirements.txt |
pddnsc
Возможно DDNS
клиент
запуск
python -m pddnsc.cli
конфигурация
Конфигурация находится в файле settings/config.toml
.
Пример конфигурации:
[sources]
# сервис https://www.ipify.org
[sources.ipfy]
provider = "IPIFYSource" # имя python класса
[filters]
# этот фильтр означает, что если ip адреса не изменились (по хешу)
# то не нужно никуда отсылать ничего
[filters.state-hash]
provider = "StateHashFilter"
filepath = "state/hash.txt"
[outputs]
# сохранение хеша всех ip адресов в файл,
# чтобы потом проверить изменились ли они
[outputs.hash-file]
provider = "StateHashFile"
filepath = "state/hash.txt"
# сервис доменов на vscale (vds.selectel.ru)
# токен в переменной окружения VSCALE_API_TOKEN
[outputs.vscale]
provider = "VscaleDomains"
domain = "example.com"
target = "www" # изменяем www.example.com
ttl = 3600
ipv4 = true # менять A запись
ipv6 = false # НЕ менять AAAA запись
Конфигурация состоит из секций:
sources
- источники ip адресов (выбирается результат от первого по времени сработавшего источника, который вернул хотябы один ipv4 или ipv6 адрес)filters
- фильтры, если хоть один вернет ложь то программа ничего никуда не запишет и не отправит, например проверка, что ip адрес не изменилсяoutputs
- модули вывода, например вывод в консоль, запись в файл или создание dns записей на сервере
Все модули источников/фильтров/вывода работают конкурентно через asyncio
.
TODO
- Добавить названия python классов и их параметры.