Мониторинг даты продления доменного имени в bash

Thank you for reading this post, don't forget to subscribe!

Как получить дату регистрации доменного имени

Самый про­стой вари­ант — исполь­зо­вать гло­баль­ную базу дан­ных whois. В ней хра­нит­ся инфор­ма­ция о домен­ных име­нах, такая как орга­ни­за­ция, ответ­ствен­ное лицо, кон­так­ты для свя­зи, дата реги­стра­ции и дата окон­ча­ния сро­ка реги­стра­ции. И это как раз то, что нам нуж­но. Давай­те возь­мем какой-нибудь попу­ляр­ный домен для при­ме­ра. Пусть это будет yandex.ru. Вот какая инфор­ма­ция хра­нит­ся в базе whois об этом домене:

Поле, кото­рое нас инте­ре­су­ет — «paid-till», это дата, до кото­рой у нас опла­чен домен.

Мониторинг даты продления доменного имени

Мони­то­ринг даты про­дле­ния домен­но­го име­ни сде­ла­ем при­мер­но так же, как и мони­то­ринг сер­ти­фи­ка­та, но замет­но про­ще. Полу­ча­ем дан­ные о домене, ищем поле, содер­жа­щее дату окон­ча­ния реги­стра­ции, если оно при­сут­ству­ет (если дан­ные whois для это­го доме­на не закры­ты), полу­ча­ем эту дату, полу­ча­ет сего­дняш­нюю дату и выво­дим раз­ни­цу в днях. При жела­нии мож­но доба­вить отправ­ку пись­ма, если оста­лось, ска­жем, мень­ше 30 дней до окон­ча­ния реги­стра­ции. Но не всё так про­сто. Пото­му что есть как мини­мум три вида запи­сей об окон­ча­нии сро­ка реги­стра­ции. Пер­вый выгля­дит так:

Вто­рой выгля­дит так:

И тре­тий выгля­дит так:

И нам, соот­вет­ствен­но, надо преду­смот­реть все три вари­ан­та. Или, если встре­тит­ся чет­вер­тый, то и чет­вер­тый. Пока давай­те раз­бе­рем­ся с эти­ми тремя.

Вот как выгля­дит скрипт:

Вот резуль­тат рабо­ты это­го скрип­та для раз­ных доме­нов на момент напи­са­ния статьи: