Использование API Cloudflare для заполнения DNS зоны домена
Задача: Заполнить ДНС зону созданную на CloudFlare данными из LDIF(текстовый формат). Скрипт должен быть написан на PHP.
Пример LDIF файла ниже. Для заполнения использовать CloudFlare Api 4ой версии. О том как использовать готовую библиотеку взаимодействия с CloudFlare https://habr.com/ru/company/otus/blog/498936/
Структура тестового файла:
Файл разбит на записи. Каждая запись это отдельный хостнейм.
associateddomain — имя хостнейма (домена или субдомена)
Записи (ldif => cloudflare):
arecord => A
mxrecord => MX
txtrecord => TXT
nsrecord => ns
cnamerecord =>cname
TTL для записей общий. Его значение вынести в константы.
Для основной записи (домена) nsrecord нужно заменить с тех что в файле на НС cloudflera. Значения вынести в константы. Основную запись можно идентифицировать по наличию soarecord
У домена может быть несколько записей одного типа, нужно добавить через API их все. У MX записи формат <приоритет> имя хоста. Так же может быть несколько различных записей у одного хоста
В случае возникновения ошибки в процессе добавления записи такую запись нужно залогировать. Формат записи в логе: associateddomain:<name>\n Проблемная ресурсная запись\Описание ошибки из API
Если у записи нету атрибутов objectclass: dNSDomain2 или objectclass: domainRelatedObject запись должна игнорироваться.
По завершению работы скрипта должен быть отчет сколько записей было добавлено, сколько записей пропущено и сколько ошибок возникло:
added: <num>
skipped: <num>
errors: <num>
Окружение:
Скрипт будет выполняться по крону раз в сутки, после того как для зоны сформирован новый LDIF. Для того чтоб идентифицировать, что зона изменилась и нужно заново заполнить на cloudflare записи, предлагаю сделать отдельный файл в который записывать md5 хеш содержимого ldif файла, который был внесен на cloudflare. Если текущий хеш отличается от сохраненного нужно очистить зону на cloudflare, внести новые записи и записать в файл новый хеш.
Для выполнения задания необходимо зарегистрировать новый аккаунт на cloudflare. Для этого можно использовать домен capitest.dp.ua
Пример LDIF:
# Запись 1: dc=capitest,dc=dp,dc=ua,dc=dns,dc=f
dn: dc=capitest,dc=dp,dc=ua,dc=dns,dc=f
arecord: 178.20.159.158
associateddomain: capitest.dp.ua
dc: capitest
mxrecord: 1 ASPMX.L.GOOGLE.COM
mxrecord: 5 ALT1.ASPMX.L.GOOGLE.COM
mxrecord: 5 ALT2.ASPMX.L.GOOGLE.COM
mxrecord: 10 ALT3.ASPMX.L.GOOGLE.COM
mxrecord: 10 ALT4.ASPMX.L.GOOGLE.COM
nsrecord: alpha.freehost.com.ua
nsrecord: beta.freehost.com.ua
nsrecord: gamma.freehost.com.ua
nsrecord: delta.freehost.com.ua
objectclass: top
objectclass: dNSDomain2
objectclass: domainRelatedObject
soarecord: alpha.freehost.com.ua. domainmaster.dns82.net. 2018090601 14400 3
600 604800 86400
txtrecord: google-site-verification=RJJZP5NfHg3wtfzM_NIcYuKzBhvawMLdwGiyQBWi
UKk
# Запись 2: dc=mail,dc=capitest,dc=dp,dc=ua,dc=dns,dc=f
dn: dc=mail,dc=capitest,dc=dp,dc=ua,dc=dns,dc=f
arecord: 194.0.200.251
associateddomain: mail.capitest.dp.ua
dc: mail
objectclass: top
objectclass: dNSDomain2
objectclass: domainRelatedObject
# Запись 3: dc=mailer,dc=capitest,dc=dp,dc=ua,dc=dns,dc=f
dn: dc=mailer,dc=capitest,dc=dp,dc=ua,dc=dns,dc=f
associateddomain: mailer.capitest.dp.ua
cnamerecord: capitest.dp.ua
dc: mailer
objectclass: top
objectclass: dNSDomain2
objectclass: domainRelatedObject
# Запись 4: dc=mailler,dc=capitest,dc=dp,dc=ua,dc=dns,dc=f
dn: dc=mailler,dc=capitest,dc=dp,dc=ua,dc=dns,dc=f
associateddomain: mailler.capitest.dp.ua
cnamerecord: capitest.dp.ua
dc: mailler
objectclass: top
objectclass: dNSDomain2
objectclass: domainRelatedObject
# Запись 5: dc=www,dc=capitest,dc=dp,dc=ua,dc=dns,dc=f
dn: dc=www,dc=capitest,dc=dp,dc=ua,dc=dns,dc=f
associateddomain: www.capitest.dp.ua
cnamerecord: capitest.dp.ua
dc: www
objectclass: top
objectclass: dNSDomain2
objectclass: domainRelatedObject
Актуальні фриланс-проєкти в категорії PHP
Прописати мета дані АЛЬТ за допомогою ІІСайт на Laravel, на сайті багато зображень, для яких потрібно прописати коректні за семантикою та релевантні для сторінки АЛЬТ описання зображення в автоматичному режимі, з можливістю перевірки AI та машинне навчання, PHP ∙ 10 годин 25 хвилин тому ∙ 19 ставок |
Доробка сайта на Ocstore 3
700 UAH
Ocstore 3 Шаблон Upstore Поправити деякі моменти https://docs.google.com/document/d/1-TmTo3lh_ElFjPMQCGs2sVCsVSzq-V-Z/edit?usp=sharing&ouid=105344407605205919725&rtpof=true&sd=true Очікую ваші пропозиції PHP, Веб-програмування ∙ 14 годин 5 хвилин тому ∙ 54 ставки |
Потрібен розробник для завершення та інтеграції проєкту з автоматичного збору й обробки данних
700 UAH
Основна частина парсера вже реалізована. Парсер працює на Windows-середовищі через Microsoft Edge: сайт має антибот-захист, тому збір даних виконується не прямими HTTP-запитами, а через живу браузерну сесію. Скрипти керують відкритою вкладкою Edge через Chrome DevTools Protocol,… PHP, Веб-програмування ∙ 16 годин 21 хвилина тому ∙ 19 ставок |
Оновлення плагінів і тем WP сайт putevka.uz«Потрібно провести технічний аудит WordPress-сайту, перевірити актуальність, безпеку та сумісність встановлених плагінів і теми. За результатами — запропонувати легальні варіанти оновлення, заміни застарілих рішень або переходу на офіційно доступні аналоги. Платні плагіни та… HTML та CSS верстання, PHP ∙ 18 годин 57 хвилин тому ∙ 33 ставки |
Інтеграція блоку "Де дивитися" (Laravel / Livewire)Потрібно реалізувати інтеграцію зовнішньої стримінгової платформи для сайту про фільми та серіали на Laravel / Livewire. Що потрібно зробити: Реалізувати імпорт зовнішнього каталогу контенту, який оновлюється 1 раз на день. Виконувати матчинг контенту по IMDb ID та/або TMDB ID.… PHP, Веб-програмування ∙ 1 день 9 годин тому ∙ 36 ставок |