Pull to refresh

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.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.