Как стать автором
Обновить

CloudFlare No-IP Client, или как избавиться от динамического ip-адреса

Хочу вам поведать статью о написании клиента под CloudFlare.

Немного предисловия


Собственно около месяца назад мне взбрела в голову мысль поставить небольшой домашний web-сервер.

Конфигурация web-сервера


Материнская плата AsRock Q1900B-ITX на процессоре Intel J1900.

image

GoodRAM SODIMM DDR3 4GB 1600MHz x2.

image

SSD-диск Transcend на 128 GB.

image

Корпус DTS E-3016 120W.

SSD-диск решил использовать, чтоб сделать сервер полностью бесшумным. Среди ОС у меня выбор пал на Windows 10, а панель управления я выбрал — Open Server.

Первая и самая главная возникшая проблема


После установки и настройки сервера возникла проблема с внешним ip-адресом (мой провайдер выдает динамические ip-адреса, хоть и изменяются они ~раз в месяц). Платить No-IP за делегирование своих доменов ~30~50 долларов с текущим курсом самоубийство… Вот и пришлось искать свое решение.

Потратив немного времени на поиски, я нашел статью cy-ernado о реализации cloudflare no-ip, но это было не совсем то, что мне нужно. Пришлось взяться за написание кода.

Реализация задумки


1. Первым делом были раскиданы элементы программы по форме:

Показать изображение

2. Далее я принялся за написание функции авторизации, если мы успешно авторизовались (программа проверяет email и cloudflare api token), то данные сохраняются в ini-файл.

Показать изображение

3. Добавил функцию выгрузки A-записей и функцию обновления данных записей (с указанием нового ip-адреса).

Показать изображение 1

Показать изображение 2

4. Так же был добавлен таймер, который обновляет записи с определенным (выбранным пользователем) интервалом.

5. В завершение был добавлен вывод текущего ip-адреса (берется с помощью сервиса ip-api.com/json).

После часа-двух потраченного времени, я получил на выходе вот такой-вот user-friendly клиент для CloudFlare:



Собственно таким методом я и решил проблему использования динамического ip-адреса.

Скачать исходники приложения вы можете по ссылке.
Скачать собранное приложение вы можете по ссылке.

P/S: в качестве среды программирования я использовал Devel Studio 2010.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.