Komputery Okna Internet

Data katastrofy gos reg html. Monitorowanie daty odnowienia nazwy domeny. Teraz stwórzmy główne skrypty do dalszej pracy.

Dobry dzień przyjaciele! Przyjrzyjmy się razem z Tobą rejestracji użytkowników w PHP. Najpierw określmy warunki rejestracji naszego użytkownika:

  • Hasło szyfrujemy algorytmem MD5
  • Hasło zostanie „solone”
  • Sprawdź, czy logowanie jest zajęte
  • Aktywacja użytkownika listownie.
  • Zapisywanie i przechowywanie danych w DBMS MySQL

Aby napisać ten skrypt, musimy zrozumieć, czym jest rejestracja użytkownika. Rejestracja użytkownika to otrzymanie danych od rzeczywistego użytkownika, przetwarzanie i przechowywanie danych.

Jeśli wyjaśnij w prostych słowach wtedy rejestracja to tylko zarejestrowanie i przechowywanie pewnych danych, za pomocą których możemy autoryzować użytkownika w naszym przypadku - jest to Login i Hasło.

Autoryzacja to nadanie określonej osobie lub grupie osób uprawnień do wykonywania określonych czynności, a także proces weryfikacji tych uprawnień przy próbie wykonania tych czynności. Mówiąc najprościej, korzystając z autoryzacji, możemy ograniczyć dostęp do tej lub innej treści na naszej stronie internetowej.

Rozważmy strukturę katalogów skryptów do realizacji naszej rejestracji z autoryzacją. Musimy rozbić skrypty na logiczne komponenty. Moduły rejestracji i autoryzacji umieściliśmy w osobnym katalogu. Umieścimy również połączenie z bazą danych w osobnych katalogach. MySQL, plik z funkcjami niestandardowymi, plik stylu CSS i nasz szablon HTML... Taka struktura pozwala na szybkie poruszanie się po skryptach. Wyobraź sobie, że masz dużą witrynę z mnóstwem modułów itp. a jeśli nie ma porządku, to bardzo trudno będzie coś znaleźć w takim bałaganie.

Ponieważ będziemy przechowywać wszystkie dane w DBMS MySQL, stwórzmy małą tabelkę, w której będziemy przechowywać dane rejestracyjne.

Najpierw musisz utworzyć tabelę w bazie danych. Stół zostanie nazwany bez_reg gdzie bez jest prefiksem tabeli i reg Nazwa tabeli.

Struktura tabeli: bez_reg

- - Struktura tabeli `bez_reg` - CREATE TABLE IF NOT EXISTS` bez_reg` (`id` int (11) NOT NULL AUTO_INCREMENT,` login` varchar (200) NOT NULL, `pass` varchar (32) NOT NULL , `salt ` varchar (32) NIE NULL, ` active_hex` varchar (32) NIE NULL, `status` int (1) NIE NULL, KLUCZ PODSTAWOWY (` id`)) SILNIK = MyISAM DOMYŚLNY ZESTAW ZNAKÓW = utf8 AUTO_INCREMENT = 1;

Teraz stwórzmy główne skrypty do dalszej pracy.

Plik INDEX.PHP

KONFIG.Plik PHP

"); ?>

Plik 404.html

błąd 404

błąd 404

Na stronie wystąpił błąd 404

Powrót


Plik BD.PHP

Plik INDEX.HTML

Rejestracja użytkownika PHP MySQL z aktywacją e-mail



Plik FUNCT.PHP

"." \ n "; if (is_array ($ dane)) (foreach ($ dane jako $ val) $ err. =

  • ". $ val."
  • "." \ n ";) w przeciwnym razie $ błąd. ="
  • ". $ dane."
  • "." \ n "; $ błąd. =""." \ n "; return $ err;) / ** Proste opakowanie dla zapytań MySQL * @param string $ sql * / function mysqlQuery ($ sql) ($ res = mysql_query ($ sql); / * Sprawdzanie wyniku pokazuje prawdziwe zapytanie wysłane do MySQL, a także błąd.Wygodne do debugowania. * / if (! $ res) ($ message = "Nieprawidłowe zapytanie:". mysql_error (). "\ n"; $ message. = " Zapytanie w całości : ". $ sql; die ($ message;) return $ res;) / ** Prosty generator soli * @param string $ sql * / function salt () ($ salt = substr (md5 (uniqid ()) ), - 8); zwróć $sól;)

    Przejdźmy do pisania rejestracji. Najpierw będziemy musieli wykonać wzór formularza rejestracyjnego, aby użytkownik mógł wprowadzić swoje dane do przetwarzania. Następnie będziemy musieli napisać samą obsługę formularzy, która sprawdzi poprawność wprowadzonych danych użytkownika. Po pomyślnej weryfikacji danych zapisujemy je do naszej bazy danych i wysyłamy pismo do użytkownika w celu aktywacji jego konta.

    Plik REG.PHP

    Zarejestrowałeś się pomyślnie! Proszę aktywuj Twoje konto !!"; // Aktywuj konto if (isset ($ _ GET [" klucz "])) (// Sprawdź klucz $ sql =" SELECT * FROM `". BEZ_DBPREFIX. "Reg` WHERE` active_hex` = "". Escape_str ( $ _GET ["klucz"]). "" "; $ Res = mysqlQuery ($ sql); if (mysql_num_rows ($ res) == 0) $ err =" Klucz aktywacyjny jest nieprawidłowy! "; // Sprawdź błędy i wyświetl użytkownikowi if (count ($ err)> 0) echo showErrorMessage ($ err); else (// Pobierz adres użytkownika $ row = mysql_fetch_assoc ($ res); $ email = $ row ["login "]; // Aktywuj konto użytkownika $ sql = "UPDATE` ". BEZ_DBPREFIX." reg` SET `status` = 1 WHERE` login` = "". $ email. "" "; $ res = mysqlQuery ($ sql ); // Wyślij e-mail, aby aktywować $ title = "(! LANG: Twoje konto na http: // zostało pomyślnie aktywowane"; $message = "Поздравляю Вас, Ваш аккаунт на http://сайт успешно активирован"; sendMessageMail($email, BEZ_MAIL_AUTOR, $title, $message); /*Перенаправляем пользователя на нужную нам страницу*/ header("Location:". BEZ_HOST ."less/reg/?mode=reg&active=ok"); exit; } } /*Если нажата кнопка на регистрацию, начинаем проверку*/ if(isset($_POST["submit"])) { //Утюжим пришедшие данные if(empty($_POST["email"])) $err = "Поле Email не может быть пустым!"; else { if(!preg_match("/^!} [e-mail chroniony](+ \.) + (2,6) $ / i ", $ _POST [" e-mail "])) $ err =" E-mail wprowadzony niepoprawnie "." \ N ";) jeśli (pusty ($ _ POST [ "pass"])) $ err = "Pole hasła nie może być puste"; if (empty ($ _ POST ["pass2"])) $ err = "Pole potwierdzenia hasła nie może być puste"; // Sprawdź błędy i wyświetl użytkownikowi if (count ($err)> 0) echo showErrorMessage ($err); else (/ * Kontynuuj sprawdzanie wprowadzonych danych Sprawdź hasła pod kątem dopasowania * / if ($ _ POST ["pass"]! = $ _POST ["pass2" ]) $ err = "Hasła nie pasują"; // Sprawdź błędy i wyświetl je użytkownikowi if (count ($ err)> 0) echo showErrorMessage ($ err); else (/ * Sprawdź jeśli mamy takiego użytkownika w bazie */$sql = „SELECT`login`FROM`”.BEZ_DBPREFIX.„reg`WHERE`login`=””.escape_str ($_POST[„email”]).”” "; $ res = mysqlQuery ($ sql); if (mysql_num_rows ($ res)> 0) $ err = "Przepraszam Login: ". $ _POST [" e-mail "]." zajęty! "; // Sprawdź błędy i wyświetl je użytkownikowi if (count ($err)> 0) echo showErrorMessage ($err); else (// Pobierz HASH soli $ salt = salt ();/ / Salt hasło $ pass = md5 (md5 ($ _ POST ["pass"]). $ salt); / * Jeśli wszystko jest w porządku, zapisz dane do bazy danych */ $ sql = "INSERT INTO`". BEZ_DBPREFIX ." reg` VALUES ("", "" .escape_str ($ _ POST ["email"]). "", "". $ pass. "", "". $ sól. "", "". md5 ( $ salt). "", 0) "; $ res = mysqlQuery ($ sql); // Wysyłanie e-maila w celu aktywacji $ url = BEZ_HOST. "less / reg /? mode = reg & key =". md5 ($ salt). ); $ title = "(! LANG: Rejestracja na http: //site"; $message = "Для активации Вашего акаунта пройдите по ссылке ". $url .""; sendMessageMail($_POST["email"], BEZ_MAIL_AUTOR, $title, $message); //Сбрасываем параметры header("Location:". BEZ_HOST ."less/reg/?mode=reg&status=ok"); exit; } } } } ?>!}

    Plik REG_FORM.HTML

    Rejestracja użytkownika PHP MySQL z aktywacją e-mail

    E-mail *:
    Hasło *:
    Potwierdzenie hasła *:

    Pola z ikoną * są wymagane

    Ponieważ jesteśmy gotowi do rejestracji użytkowników, czas na napisanie autoryzacji. Stwórzmy formularz autoryzacji użytkownika, następnie napiszmy obsługę formularza autoryzacji i na koniec stwórzmy skrypt show.php który pokaże nam, czy jesteśmy upoważnieni w systemie, czy nie.

    AUTH.PHP plik

    0) echo showErrorMessage ($err); else (/ * Utwórz zapytanie do pobrania z bazy danych, aby sprawdzić autentyczność użytkownika * / $ sql = "SELECT * FROM` ". BEZ_DBPREFIX." reg` WHERE `login` =" ". escape_str ($ _ POST [ " email "]) . "" AND `status` = 1"; $ res = mysqlQuery ($ sql); // Jeśli login pasuje, sprawdź hasło if (mysql_num_rows ($ res)> 0) (// Pobierz dane z tabeli $ row = mysql_fetch_assoc ( $ res); if (md5 (md5 ($ _ POST ["pass"]). $ row ["salt"]) == $ row ["pass"]) ($ _SESSION [ "user"] = true; // Zresetuj nagłówek parametrów ("Lokalizacja:". BEZ_HOST. "Less / reg /? Mode = auth"); exit;) else echo showErrorMessage ("Błędne hasło!");) Else echo showErrorMessage ("Zaloguj sie ". $ _POST [" e-mail "]." nie znaleziono! ");))?>

    Dla tych, którzy mają najnowszą wersję PHP, publikuję ten skrypt za pomocą ChNP odkąd rozbudowa MySQL przestarzałe i usunięte z nowszej wersji PHP. Pobierz rejestrację i autoryzację php mysql pdo

    Archiwum zostało zaktualizowane 24 lutego 2015 r.

    Uwaga: Jeśli używasz tego skryptu na lokalnym serwerze, takim jak DENWER,XAMPP, to nie powinieneś czekać na listy do swojej skrzynki pocztowej. Litery są puste Wyślij maila... V Denwer możesz je znaleźć po drodze Z: \ tmp \! Wyślij pocztę \ możesz otworzyć te pliki w dowolnym kliencie poczty.

    Jeżeli odnowienie usługi rejestracji domen .RU, .РФ i SU nie zostanie opłacone przed datą wygaśnięcia, usługa zostaje zawieszona (anulowana delegacja domeny) w dniu wskazanym w polu do kasy w serwisie Whois. Jeśli zaplanowana data zamknięcia przypada na weekend lub święto, zamknięcie domeny jest przenoszone na pierwszy dzień roboczy po weekendzie.

    Po zawieszeniu delegacji domeny wszystkie zapytania http kierowane do domeny są przekierowywane na stronę usługi z informacją o chwilowym braku realizacji usługi. Administratorzy domen .RU i .РФ mogą odmówić przekierowania na stronę serwisu przed upływem okresu rejestracji nazwy domeny, wysyłając żądanie w dowolnej formie na adres.

    W ciągu 30 dni po wygaśnięciu usługi (w okresie preferencyjnego odnowienia) Abonent domeny .RU, .РФ lub.SU zachowuje możliwość zapłaty za odnowienie.

    W przypadku zapłaty wznowienie świadczenia usługi.

    Usunięcie domen .RU, .SU, .РФ z Rejestru z powodu braku płatności

    Jeżeli odnowienie rejestracji domeny nie zostanie opłacone w ciągu 30 dni od jej zakończenia (w okresie preferencyjnego odnowienia), rejestracja jest anulowana (domena zostaje zwolniona).

    Opublikowane w wolnym polu informacji o domenie po upływie okresu jej rejestracji.

    RU-CENTER może usunąć domenę .SU w dowolnym momencie od daty planowanego zwolnienia. Jeśli tak się nie stanie, domeny zostaną automatycznie usunięte przez Centrum Techniczne.

    W okresie wywłaszczania nazwy domen .RU i .РФ nie zostaną anulowane.

    Data usunięcia domeny przez Centrum Techniczne

    Domeny .RU, .РФ i SU są usuwane przez Centrum Techniczne w dniu odpowiadającym planowanej dacie usunięcia (data wolna).

    Domeny .RU, .РФ lub.SU zostaną usunięte drugiego dnia roboczego po weekendzie, jeśli data usunięcia przypada na weekend lub dzień następujący po weekendzie.

    Rozpoczyna się procedura usuwania domen w Centrum Technicznym:

    • dla domen .RU, .РФ o 17:00 (MSK),
    • dla domains.SU o 19:30 (MSK).

    Rejestracja przez RU-CENTER domen .RU, .SU, .РФ z zastrzeżeniem zwolnienia

    Wnioski o rejestrację domeny zwalnianej z Rejestru można składać na stronie www..strona/aukcja/serwer przed zwolnieniem domeny z Rejestru.

    W przypadku domen .RU i .РФ zgłoszenia rozpoczynają się 30 dni przed dniem zwolnienia domeny z Rejestru zgodnie z usługą rejestracji zwalnianej domeny w domenach RU i RF.

    W przypadku domen SU ​​– w dowolnym momencie przed zwolnieniem domeny z Rejestru zgodnie z usługą rejestracji zwalnianej domeny w domenach SU, COM.RU, NET.RU, ORG.RU, PP.RU i geodomenach.

    W przypadku domen .RU, .SU, .РФ - w dniu usunięcia domeny z Rejestru przez interfejs WWW na stronie, przy czym:

    • Pismo o podjętych działaniach wysyłane jest na adresy kontaktowe osoby, która złożyła wniosek.

    2. Międzynarodowe i zagraniczne

    Jeżeli odnowienie usługi nie zostanie opłacone przed upływem okresu jej ważności, świadczenie usługi zostaje zawieszone (odwołanie delegacji domeny) następnego dnia po terminie określonym w polu Data wygaśnięcia w. Jeśli zaplanowana data zamknięcia przypada na weekend lub święto, zamknięcie domeny jest przenoszone na drugi dzień roboczy po weekendzie.

    W ciągu 30 dni po wygaśnięciu usługi Administrator Domeny zachowuje możliwość opłacenia jej odnowienia. W przypadku zapłaty wznowienie świadczenia usługi.

    Usuwanie domen z rejestrów w międzynarodowych i zagranicznych domenach krajowych

    Jeżeli odnowienie rejestracji domeny nie zostanie opłacone w ciągu 30 dni od daty wygaśnięcia usługi, RU-CENTER rozpocznie procedurę usunięcia domeny w Rejestrze. Jeżeli data usunięcia domeny wypada w weekend lub święto, rozpoczęcie procedury usunięcia domeny zostaje przesunięte na drugi dzień roboczy po weekendzie.

    Procedura usunięcia domeny z Rejestru trwa 35 dni. Wyjątkami są:

    • domen .HN, których usunięcie trwa 15 dni, a domena nie może być w tym okresie przywrócona ani odnowiona;
    • domeny .NAME, które są usuwane po 30 dniach od wygaśnięcia okresu rejestracji.
    • domeny .KZ, które są usuwane po 20 dniach od wygaśnięcia okresu rejestracji.

    W takim przypadku Rejestr na 30 dni ustawia odpowiedni status domeny w:
    .NET, .COM, .CC, .TV, .AG, .BZ, .LC, .MN, .SC, .VC – okres realizacji,
    .BIZ, .TEL - Oczekujące na usunięcie,
    .INFO, .ORG, .ME, .MOBI, .AERO, .TRAVEL, .XXX, .PRO - Oczekujące na usunięcie.

    Data rozpoczęcia trzydziestodniowego okresu jest wskazana w polu:
    Zaktualizowana data dla domen .NET, .COM, .CC, .TV, .AG, .BZ, .HN, .LC, .MN, .SC, .VC
    Data ostatniej aktualizacji domeny — BIZ, .TEL lub
    Ostatnia aktualizacja - INFO, .ORG, .ME, .MOBI, .AERO, .TRAVEL, .XXX, .PRO.

    Odzyskiwanie domeny

    W ciągu 25 dni od rozpoczęcia procedury usuwania domena może zostać przywrócona i odnowiona (z wyjątkiem .HN, NAME, .KZ) na wniosek Administratora Domeny.

    Jeśli domena nie została przywrócona i odnowiona, zostanie usunięta z Rejestru 5 dni po zakończeniu okresu RedemptionPeriod (Oczekujące na usunięcie lub PendingDelete z możliwością przywrócenia). W ciągu tych 5 dni (status domeny w Rejestrze - PendingDelete) niemożliwe jest przywrócenie, odnowienie lub zarejestrowanie domeny.

    Po usunięciu domeny z Rejestru domenę może zarejestrować dowolna osoba.

    3. Domeny III poziomu

    Usunięcie delegacji domeny z powodu braku płatności

    Jeżeli odnowienie usługi nie zostanie opłacone przed upływem okresu jej ważności, świadczenie usługi zostaje zawieszone (odwołanie delegacji domeny) następnego dnia po terminie wskazanym w polu do kasy w serwisie Whois. W przypadku domen .NET.RU, .ORG.RU i .PP.RU usługa zostaje zawieszona (odwołanie delegacji domeny) w dniu określonym w polu dopłaty w serwisie Whois.

    Jeśli zaplanowana data zamknięcia przypada na weekend lub święto, zamknięcie domeny jest przenoszone na drugi dzień roboczy po weekendzie.

    Po zawieszeniu delegowania domeny wszystkie żądania http kierowane do domen .NET.RU, .ORG.RU i .PP.RU są przekierowywane na oficjalną stronę internetową .NET.RU, .ORG.RU i.PP.RU Administrator domen, TsVKS „MSK-IX”, z informacją o przyczynie zakończenia delegacji.

    W ciągu 30 dni po wygaśnięciu usługi (okres odnowienia z wywłaszczaniem) Administrator Domeny zachowuje możliwość opłacenia jej odnowienia. W przypadku zapłaty wznowienie świadczenia usługi.

    W okresie wywłaszczania domeny .NET.RU, .ORG.RU i .PP.RU nie zostaną anulowane.

    Jeżeli płatność za odnowienie usługi zostanie dokonana w ostatnim dniu roboczym preferencyjnego okresu odnowienia, RU-CENTER nie ponosi odpowiedzialności za pomyślne odnowienie.

    Usuwanie domen

    Rejestracja nazwy domeny trzeciego poziomu jest anulowana (domena zostaje zwolniona), jeśli nie zostanie odnowiona w ciągu 30 (trzydziestu) dni kalendarzowych od daty wygaśnięcia rejestracji nazwy domeny.

    Planowana data wydania domeny jest publikowana w wolnym polu w informacji o domenie w serwisie Whois RU-CENTER po upływie okresu rejestracji. W takim przypadku usunięcie następuje o jeden dzień później niż planowany termin wydania, jeżeli dzień usunięcia (data wolna + 1) nie przypada na dzień wolny od pracy lub dzień następujący po dniu wolnym od pracy (w przeciwnym razie usunięcie następuje drugiego dnia roboczego po weekendzie).

    Domeny .NET.RU, .ORG.RU i .PP.RU są usuwane przez Centrum Techniczne w dniu odpowiadającym planowanej dacie usunięcia (data wolna). Domeny .NET.RU, .ORG.RU i .PP.RU zostaną usunięte drugiego dnia roboczego po weekendzie, jeśli data usunięcia przypada na weekend lub dzień następujący po weekendzie.

    Rejestracja przez RU-CENTER domen trzeciego poziomu, które są wydawane

    Wnioski o rejestrację zwolnionych domen z Rejestru lub domen .COM.RU można składać na stronie www..strona/aukcja/serwer w dowolnym momencie przed zwolnieniem domen z Rejestru zgodnie z usługą „Rejestracja zwolnionych domen w domeny i geodomeny .COM.RU”.

    W dniu usunięcia domeny wniosek o usługę rejestracji domeny jest przyjmowany przez interfejs WWW na stronie, przy czym:

    • zgłoszenie jest spełnione, jeśli w momencie jego przetwarzania domena jest wolna;
    • Na kontaktowe adresy e-mail osoby, która złożyła wniosek, wysyłane jest pismo o podjętych działaniach.

    Monitorowanie daty odnowienia nazwy domeny to działanie, którego nie można lekceważyć. Już o tym pisałem, a teraz zajmijmy się innym częstym problemem - nieoczekiwanym wygaśnięciem okresu rejestracji nazwy domeny. Wydawałoby się, że dziś wszyscy rejestratorzy przypominają o tym z góry (i zwykle kilka razy). Problem polega jednak na tym, że te listy albo nie są czytane, albo w jakiś sposób trafiają do spamu. Generalnie nie każdy zdaje sobie sprawę, że kończy się okres rejestracji nazwy domeny. W rezultacie strona nie działa, ludzie nie rozumieją dlaczego, a czasami spędzają dużo czasu, aby zrozumieć, co się dzieje. Tymczasem nazwa domeny znika z pamięci podręcznej DNS, a po kilku dniach (lub nawet wcześniej, w zależności od różnych czynników) odwiedzający przestają docierać na stronę. Zobaczmy, jak monitorować datę wygaśnięcia rejestracji nazwy domeny. Oczywiście skrypt bash.

    Jak uzyskać datę rejestracji nazwy domeny?

    Najłatwiejszą opcją jest skorzystanie z globalnej bazy whois. Przechowuje informacje o nazwach domen, takie jak organizacja, osoba odpowiedzialna, dane kontaktowe, data rejestracji i data wygaśnięcia rejestracji. I właśnie tego potrzebujemy. Weźmy na przykład popularną domenę. Niech to będzie yandex.ru. Oto informacje przechowywane w bazie whois o tej domenie:

    $ whois yandex.ru% Przesyłając zapytanie do usługi Whois RIPN%, zgadzasz się przestrzegać następujących warunków użytkowania:% http://www.ripn.net/about/servpol.html#3.2 (w języku rosyjskim) % http://www.ripn.net/about/en/servpol.html#3.2 (w języku angielskim) domena: YANDEX.RU nserwer: ns1.yandex.ru 213.180.193.1, 2a02: 6b8 :: 1 nserwer: ns2.yandex.ru.93.158.134.1, 2a02: 6b8: 0: 1 :: 1 stan: ZAREJESTROWANY, DELEGOWANY, ZWERYFIKOWANY org: YANDEX, LLC.registrar: RU-CENTER-RU kontakt z administratorem: https: // www. nic.ru/whois utworzone: 1997.09.23 płatne do: 2017.10.01 wolne data: 2017.11.01 źródło: TCI Ostatnia aktualizacja 2017.01.03 05:46:31 MSK

    Pole, które nas interesuje to „do zapłaty”, jest to data, do której zapłaciliśmy za domenę.

    Monitorowanie daty odnowienia nazwy domeny przeprowadzimy w podobny sposób, jak monitorowanie certyfikatu, ale znacznie łatwiej. Pobieramy dane domeny, szukamy pola zawierającego datę wygaśnięcia rejestracji, jeśli jest obecne (jeśli dane whois dla tej domeny nie są zamknięte), pobieramy tę datę, pobieramy dzisiejszą datę i wyświetlamy różnicę w dniach. Jeśli chcesz, możesz dodać wysłanie listu, jeśli zostało, powiedzmy, mniej niż 30 dni do zakończenia rejestracji. Ale to nie jest takie proste. Ponieważ istnieją co najmniej trzy rodzaje rekordów wygaśnięcia rejestracji. Pierwsza wygląda tak:

    Płatne do: 2017.10.01

    Drugi wygląda tak:

    Data wygaśnięcia rejestracji rejestratora: 2020-09-13T21: 00: 00-0700

    A trzeci wygląda tak:

    Data wygaśnięcia rejestru: 2018-05-11T04: 00: 00Z

    W związku z tym musimy zapewnić wszystkie trzy opcje. Lub, jeśli jest czwarta, to czwarta. Zajmijmy się teraz tymi trzema.

    Tak wygląda skrypt:

    #! / bin / bash # Jeśli parametr nie jest określony, wyświetl podpowiedź i zakończ if ["$ 1" == ""] then cat<< EOF Script that monitors how many days left until domain registration ends. Usage: $(basename $0) domain.name EOF exit fi # Получаем строку, содержащую дату окончания регистрации PAIDTILL=$(whois $1 | grep "paid-till\|Registrar Registration Expiration Date\|Registry Expiry Date") # Если такая строка не найдена, выходим с ошибкой if [ -z "$PAIDTILL" ] then echo "Registration end date is not available in whois database" exit 1 else # Если дата выглядит как ГГГГ.ММ.ДД, то добавляем 00:00:00 в конец [[ "$PAIDTILL" =~ "paid-till" ]] && PAIDTILL=${PAIDTILL//./-}" 00:00:00" # Удаляем из строки всё до двоеточия, само двоеточие # плюс автоматически будут удалены пробелы PAIDTILL=${PAIDTILL#*:} # Получаем текущую дату CURRENTDATE=$(date "+%Y-%m-%d %H:%M:%S") # Находим разницу между датами, получаем количество оставшихся дней DAYS_LEFT=$((($(date -d "$PAIDTILL" +%s) - $(date -d "$CURRENTDATE" +%s)) / 86400)) # Выводим, сколько дней осталось echo $DAYS_LEFT days left fi

    Oto dane wyjściowe tego skryptu dla różnych domen w momencie pisania tego tekstu:

    $ ./check-dn-reg.sh linux.org Pozostało 492 dni $ ./check-dn-reg.sh yahoo.com Pozostało 2206 dni $ ./check-dn-reg.sh yandex.ru Pozostało 270 dni $. /check-dn-reg.sh google.com Pozostało 1349 dni $ ./check-dn-reg.sh ok.ru Pozostało 331 dni $ ./check-dn-reg.sh vk.com Pozostało 170 dni $ ./check -dn-reg.sh linux.org Pozostało 492 dni $ ./check-dn-reg.sh linux.org.ru Pozostało 345 dni

    Zgadzam się, wygląda wygodnie. Monitorowanie daty odnowienia nazwy domeny za pomocą skryptu o rozmiarze tylko 660 bajtów. Może być już używany w monitoringu z Nagios lub Zabbix.

    Jeśli są dodatki, komentarze, napisz w komentarzach.