Datum katastrofe je gos reg html. Spremljanje datuma obnove imena domene. Zdaj pa ustvarimo glavne skripte za nadaljnje delo.
Dober dan prijatelji! Oglejmo si registracijo uporabnikov v PHP z vami. Najprej določimo pogoje za registracijo uporabnika:
- Geslo šifriramo z uporabo algoritma MD5
- Geslo bo "soljeno"
- Preverite razpoložljivost prijave
- Aktivacija uporabnika s pismom.
- Pisanje in shranjevanje podatkov v MySQL DBMS
Za pisanje tega skripta moramo razumeti, kaj je registracija uporabnika. Registracija uporabnika je prejemanje podatkov od resničnega uporabnika, obdelava in shranjevanje podatkov.
Če razloži z enostavnimi besedami potem je registracija le snemanje in shranjevanje določenih podatkov, s katerimi lahko pooblastimo uporabnika v našem primeru - to sta prijava in geslo.
Pooblastilo je podelitev določene osebe ali skupine oseb pravicam do izvajanja določenih dejanj, pa tudi postopek preverjanja teh pravic pri poskusu izvajanja teh dejanj. Preprosto povedano, z avtorizacijo lahko omejimo dostop do ene ali druge vsebine na naši spletni strani.
Razmislimo o strukturi imenikov skriptov za izvajanje naše registracije z avtorizacijo. Skripte moramo razbiti na logične komponente. Registracijske in avtorizacijske module smo dali v ločen imenik. Povezavo z bazo podatkov bomo postavili tudi v ločene imenike. MySQL, datoteka s funkcijami po meri, datoteka sloga CSS in našo predlogo Html... Ta struktura vam omogoča hitro krmarjenje po skriptih. Predstavljajte si, da imate veliko spletno mesto s kopico modulov itd. in če ni reda, bo v takšni zmešnjavi zelo težko kaj najti.
Ker bomo vse podatke shranili v MySQL DBMS, nato pa ustvarimo majhno tabelo, v katero bomo shranili registracijske podatke.
Najprej morate ustvariti tabelo v bazi podatkov. Miza bo poklicana brez_reg kje brez je predpona tabele in reg ime tabele.
Struktura tabele: brez_reg
- - Struktura tabele `bez_reg` - Ustvari tabelo, če ne obstaja` bez_reg` (`id` int (11) NOT NULL AUTO_INCREMENT,` login` varchar (200) NOT NULL, `pass` varchar (32) NOT NULL,` sol `varchar (32) NOT NULL,` active_hex` varchar (32) NOT NULL, `status` int (1) NOT NULL, PRIMARNI KLJUČ (` id`)) MOTOR = PRIMORSKA KARETA MyISAM = utf8 AUTO_INCREMENT = 1;Zdaj pa ustvarimo glavne skripte za nadaljnje delo.
Datoteka INDEX.PHP
Datoteka CONFIG.PHP
!defined("BEZ_KEY")) { header("HTTP/1.1 404 Not Found"); exit(file_get_contents("./404.html")); } //Адрес базы данных define("BEZ_DBSERVER","localhost"); //Логин БД define("BEZ_DBUSER",""); //Пароль БД define("BEZ_DBPASSWORD",""); //БД define("BEZ_DATABASE",""); //Префикс БД define("BEZ_DBPREFIX","bez_"); //Errors define("BEZ_ERROR_CONNECT","Немогу соеденится с БД"); //Errors define("BEZ_NO_DB_SELECT","Данная БД отсутствует на сервере"); //Адрес хоста сайта define("BEZ_HOST","http://". $_SERVER["HTTP_HOST"] ..ru>"); ?>
404.html datoteko
Napaka 404 |
Na strani je prišlo do napake 404 |
Vrnitev |
Datoteka BD.PHP
!defined("BEZ_KEY")) { header("HTTP/1.1 404 Not Found"); exit(file_get_contents("./../404.html")); } //Соединение с БД MySQL $db_connect = mysql_connect(BEZ_DBSERVER, BEZ_DBUSER, BEZ_DBPASSWORD) or die(BEZ_ERROR_CONNECT); define("BEZ_CONNECT", $db_connect); mysql_select_db(BEZ_DATABASE, BEZ_CONNECT)or die(BEZ_NO_DB_SELECT); //Устанавливаем кодировку UTF8 mysql_query ("SET NAMES utf8"); mysql_query ("set character_set_client="utf8""); mysql_query ("set character_set_results="utf8""); mysql_query ("set collation_connection="utf8_general_ci""); ?>
INDEX.HTML datoteka
Datoteka FUNCT.PHP
!defined("BEZ_KEY")) { header("HTTP/1.1 404 Not Found"); exit(file_get_contents("./../404.html")); } /**Функция экранирования вносимых данных *@param array $data */ function escape_str($data) { if(is_array($data)) { if(get_magic_quotes_gpc()) $strip_data = array_map("stripslashes", $data); $result = array_map("mysql_real_escape_string", $strip_data); return $result; } else { if(get_magic_quotes_gpc()) $data = stripslashes($data); $result = mysql_real_escape_string($data); return $result; } } /**Отпровляем сообщение на почту * @param string $to * @param string $from * @param string $title * @param string $message */ function sendMessageMail($to, $from, $title, $message) { //Адресат с отправителем //$to = $to; //$from = $from; //Формируем заголовок письма $subject = $title; $subject = "=?utf-8?b?". base64_encode($subject) ."?="; //Формируем заголовки для почтового сервера $headers = "Content-type: text/html; charset=\"utf-8\"\r\n"; $headers .= "From: ". $from ."\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Date: ". date("D, d M Y h:i:s O") ."\r\n"; //Отправляем данные на ящик админа сайта if(!mail($to, $subject, $message, $headers)) return "Ошибка отправки письма!"; else return true; } /**функция вывода ошибок * @param array $data */ function showErrorMessage($data) { $err = "
- "." \ n "; if (is_array ($ data)) (foreach ($ data as $ val) $ err. ="
- ". $ val." "." \ n ";) else $ err. ="
- ". $ data." "." \ n "; $ err. ="
Pojdimo na pisno registracijo. Najprej bomo morali narediti predlogo obrazca za registracijo, da bo uporabnik lahko vnesel svoje podatke za obdelavo. Nato bomo morali napisati sam upravljavec obrazcev, ki bo preveril pravilnost vnesenih uporabniških podatkov. Ko so podatki uspešno preverjeni, jih zapišemo v svojo bazo in uporabniku pošljemo pismo, da aktivira svoj račun.
Datoteka REG.PHP
!defined("BEZ_KEY")) { header("HTTP/1.1 404 Not Found"); exit(file_get_contents("./../../404.html")); } //Выводим сообщение об удачной регистрации if(isset($_GET["status"]) and $_GET["status"] == "ok") echo "Uspešno ste se registrirali! Prosimo, aktivirajte svoj račun !!"; // Aktivirajte račun if (isset ($ _ GET [" key "]))) (// Preverite ključ $ sql =" SELECT * FROM `". BEZ_DBPREFIX. "Reg` WHERE` active_hex` =" ". Escape_str ($ _GET ["key"]). "" "; $ Res = mysqlQuery ($ sql); if (mysql_num_rows ($ res) == 0) $ err =" Aktivacijski ključ ni pravilen! "; // Preverite napake in uporabniku prikažite if (count ($ err)> 0) echo showErrorMessage ($ err); else (// Pridobite naslov uporabnika $ row = mysql_fetch_assoc ($ res); $ email = $ row ["login "]; // Aktiviraj uporabnika računa $ sql =" UPDATE` ". BEZ_DBPREFIX." Reg` SET `status` = 1 WHERE` login` = "". $ Email. "" "; $ Res = mysqlQuery ($ sql ); // Pošljite e -poštno sporočilo za aktiviranje $ title = "(! LANG: Vaš račun na spletnem mestu http: // je bil uspešno aktiviran"; $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("/^!} [zaščiteno po e -pošti]( + \.) + (2,6) $ / i ", $ _POST [" email "])) $ err =" E-pošta je vnesena napačno "." \ N ";) if (prazno ($ _ POST [ "pass"])) $ err = "Polje za geslo ne more biti prazno"; if (prazno ($ _ POST ["pass2"])) $ err = "Polje za potrditev gesla ne more biti prazno"; // Preverite napake in prikazati uporabniku if (count ($ err)> 0) echo showErrorMessage ($ err); else ( / * Nadaljuj s preverjanjem vnesenih podatkov Preverite, ali se gesla ujemajo * / if ($ _ POST ["pass"]! = $ _POST ["pass2"]) $ err = "Gesla se ne ujemajo"; // Preveri napake in jih prikaže uporabniku, če (count ($ err)> 0) echo showErrorMessage ($ err); else (/ * Preveri če imamo takega uporabnika v bazi podatkov * / $ sql = "SELECT` login` FROM` ". BEZ_DBPREFIX." reg` WHERE` login` = "". escape_str ($ _ POST ["email"]). "" "; $ res = mysqlQuery ($ sql); if (mysql_num_rows ($ res)> 0) $ err =" Žal prijava: ". $ _POST [" email "]." zaseden! "; // Preverite napake in ga prikažite uporabniku if (count ($ err)> 0) echo showErrorMessage ($ err); else (// Pridobite HASH soli $ salt = salt ();/ / Posolite geslo $ pass = md5 (md5 ($ _ POST ["pass"]). $ Salt); / * Če je vse v redu, zapišite podatke v bazo podatkov * / $ sql = "INSERT INTO". BEZ_DBPREFIX . "reg` VALUES (" "," ". escape_str ($ _ POST [" email "])." "," ". $ pass." "," ". $ salt." "," ". md5 ( $ salt). "", 0) "; $ res = mysqlQuery ($ sql); // Pošiljanje e -poštnega sporočila za aktiviranje $ url = BEZ_HOST." less / reg /? mode = reg & key = ". md5 ($ salt ); $ title = "(! LANG: Registracija na http: / / spletnem mestu"; $message = "Для активации Вашего акаунта пройдите по ссылке ". $url .""; sendMessageMail($_POST["email"], BEZ_MAIL_AUTOR, $title, $message); //Сбрасываем параметры header("Location:". BEZ_HOST ."less/reg/?mode=reg&status=ok"); exit; } } } } ?>!}
Datoteka REG_FORM.HTML
Registracija uporabnika PHP MySQL z aktivacijo po e -pošti
Polja z ikono * so potrebne
Ker smo pripravljeni registrirati uporabnike, je čas, da napišemo pooblastilo. Ustvarimo obrazec za avtorizacijo uporabnika, nato napišemo upravljavec obrazca za avtorizacijo in končno naredimo skript show.php ki nam bo pokazal, ali smo v sistemu pooblaščeni ali ne.
Datoteka AUTH.PHP
!defined("BEZ_KEY")) { header("HTTP/1.1 404 Not Found"); exit(file_get_contents("./../../404.html")); } //Если нажата кнопка то обрабатываем данные if(isset($_POST["submit"])) { if(empty($_POST["email"])) $err = "Не введен Логин"; if(empty($_POST["pass"])) $err = "Не введен Пароль"; //Проверяем наличие ошибок и выводим пользователю if(count($err) >0) echo showErrorMessage ($ err); else ( / * Ustvarite poizvedbo za pridobitev iz baze podatkov, da preverite pristnost uporabnika * / $ sql = "SELECT * FROM`". BEZ_DBPREFIX. "reg` WHERE` login` = "". escape_str ($ _ POST [ "email"]). "" AND `status` = 1"; $ res = mysqlQuery ($ sql); // Če se prijava ujema, preverite geslo if (mysql_num_rows ($ res)> 0) (// Pridobite podatke iz tabele $ row = mysql_fetch_assoc ($ res); if (md5 (md5 ($ _ POST ["pass"]). $ row ["salt"]) == $ row ["pass"]) ($ _SESSION [ "user"] = true; // Ponastavi glavo parametrov ("Lokacija:". BEZ_HOST. "Less / reg /? Mode = auth"); exit;) else echo showErrorMessage ("Napačno geslo!");) Drugače odmeva showErrorMessage ("Vpiši se ". $ _POST [" email "]." ni mogoče najti! ");))?>
Za tiste, ki imajo najnovejšo različico PHP, objavim ta skript z uporabo ZOP od podaljšek MySQL zastarelo in odstranjeno iz novejše različice PHP. Prenesite registracijo in avtorizacijo php mysql pdo
Arhiv je bil posodobljen 24. februarja 2015.
Pozor:Če ta skript uporabljate na lokalnem strežniku, na primer DENWER,XAMPP, potem ne smete čakati na pisma v nabiralnik. Črke so prazne Pošlji pošto... V Denwer jih lahko najdete na poti Z: \ tmp \! Sendmail \ te datoteke lahko odprete v katerem koli poštnem odjemalcu.
Če podaljšanje storitve registracije domene .RU, .РФ in SU ni plačano pred datumom poteka veljavnosti, se storitev začasno prekine (prenos domene se prekliče) na dan, ki je določen v polju za plačilo do storitve v storitvi Whois. Če predvideni datum zaustavitve pade na vikend ali praznike, se zaustavitev domene prenese na prvi delovni dan po koncu tedna.
Po prekinitvi prenosa pooblastila domene se vse zahteve http do domene preusmerijo na stran storitve z informacijami o začasnem neuspešnem zagotavljanju storitve. Skrbniki domen .RU in .РF lahko zavrnejo preusmeritev na stran s storitvami pred iztekom obdobja registracije domene tako, da na naslov pošljejo zahtevo v kakršni koli obliki.
V 30 dneh po izteku storitve (v preferencialnem obdobju podaljšanja) registracijski zavezanec domen .RU, .РФ ali.SU ohrani možnost plačila za njeno podaljšanje.
V primeru plačila se storitev nadaljuje.
Odstranitev domen .RU, .SU, .РF iz registra zaradi neplačila
Če podaljšanje registracije domene ni plačano v 30 dneh po njenem koncu (v času preferencialne obnove), se registracija prekliče (domena se sprosti).
Objavljeno v polju s prostim datumom informacij o domeni po izteku obdobja registracije.
RU-CENTER lahko kadar koli izbriše domeno .SU od datuma načrtovanega prostega datuma. Če se to ne zgodi, Tehnično središče samodejno izbriše domene.
V času predhodnega podaljšanja domen .RU in .РF ne bosta preklicani.
Datum izbrisa domene s strani Tehničnega centra
Domene .RU, .РФ in SU Tehnični center izbriše na dan, ki ustreza načrtovanemu datumu izbrisa (prosti datum).
Domene .RU, .РФ ali.SU bodo izbrisane drugi delovni dan po koncu tedna, če datum izbrisa pade na vikend ali dan po koncu tedna.
Postopek brisanja domen v Tehničnem centru začne delovati:
- za domene .RU, .РФ ob 17:00 (MSK),
- za domene.SU ob 19:30 (MSK).
Registracija prek RU-CENTER domen .RU, .SU, .РF je predmet sprostitve
Vloge za registracijo domene, ki se sprošča iz registra, je mogoče predložiti na spletnem mestu www..site / dražba / strežnik, preden se domena sprosti iz registra.
Za domene .RU in .РF se prijave začnejo sprejemati 30 dni pred dnem, ko je domena izpuščena iz registra v skladu s storitvijo za registracijo sproščene domene v RU in ruskih domenah.
Za domene SU - kadar koli, preden je domena sproščena iz registra v skladu s storitvijo registracije sproščene domene na domenah SU, COM.RU, NET.RU, ORG.RU, PP.RU in geodomenah.
Za domene .RU, .SU, .РF - na dan, ko je bila domena odstranjena iz registra prek spletnega vmesnika na strani, medtem ko:
- Pismo o sprejetih ukrepih se pošlje na kontaktne naslove osebe, ki je vložila vlogo.
2. Mednarodni in tuji
Če podaljšanje storitve ni plačano pred iztekom veljavnosti, se storitev prekine (prenos domene se prekliče) naslednji dan po datumu, navedenem v polju Datum poteka v. Če predvideni datum zaustavitve pade na vikend ali praznike, se zaustavitev domene prenese na drugi delovni dan po koncu tedna.
V 30 dneh po izteku storitve skrbnik domene ohrani možnost plačila za njeno podaljšanje. V primeru plačila se storitev nadaljuje.
Odstranjevanje domen iz registrov na mednarodnih in tujih nacionalnih domenah
Če podaljšanje registracije domene ni plačano v 30 dneh od datuma prenehanja storitve, bo RU-CENTER začel postopek brisanja domene v registru. Če datum izbrisa pade na vikend ali praznike, se začetek postopka brisanja domene prestavi na drugi delovni dan po koncu tedna.
Postopek brisanja domene v registru traja 35 dni. Izjeme so:
- .HN domen, katerih izbris traja 15 dni, in domene v tem obdobju ni mogoče obnoviti ali obnoviti;
- domene .NAME, ki se izbrišejo po 30 dneh po izteku obdobja registracije.
- domene .KZ, ki se izbrišejo po 20 dneh po izteku roka za registracijo.
V tem primeru register za 30 dni nastavi ustrezen status za domeno v:
.NET, .COM, .CC, .TV, .AG, .BZ, .LC, .MN, .SC, .VC - Obdobje odkupa,
.BIZ, .TEL - čaka na brisanje,
.INFO, .ORG, .ME, .MOBI, .AERO, .TRAVEL, .XXX, .PRO - V teku Izbrisati Obnovljivo.
Datum začetka tridesetdnevnega obdobja je naveden v polju:
Posodobljen datum za domene .NET, .COM, .CC, .TV, .AG, .BZ, .HN, .LC, .MN, .SC, .VC
Datum zadnje posodobitve domene - BIZ, .TEL ali
Nazadnje posodobljeno - INFO, .ORG, .ME, .MOBI, .AERO, .TRAVEL, .XXX, .PRO.
Obnovitev domene
V 25 dneh od začetka postopka brisanja lahko domeno obnovimo in obnovimo (razen .HN, NAME, .KZ) na zahtevo skrbnika domene.
Če domena ni bila obnovljena in obnovljena, bo izbrisana iz registra 5 dni po koncu obdobja unovčenja (čakajoče brisanje ali čakajoče brisanje obnovljivo). V teh 5 dneh (stanje domene v registru - PendingDelete) ni mogoče obnoviti, obnoviti ali registrirati domene.
Ko je domena odstranjena iz registra, jo lahko registrira katera koli oseba.
3. Domene 3. stopnje
Odstranitev pooblastila domene zaradi neplačila
Če podaljšanje storitve ni plačano pred iztekom veljavnosti, se storitev prekine (prenos domene se prekliče) naslednji dan po datumu, določenem v polju za plačilo do storitve v storitvi Whois. Za domene .NET.RU, .ORG.RU in .PP.RU je storitev začasno ustavljena (prenos domene je preklican) na dan, ki je določen v polju za plačilo do storitve v storitvi Whois.
Če predvideni datum zaustavitve pade na vikend ali praznike, se zaustavitev domene prenese na drugi delovni dan po koncu tedna.
Po prekinitvi prenosa domene se vse http-zahteve do domen .NET.RU, .ORG.RU in .PP.RU preusmerijo na uradno spletno mesto .NET.RU, .ORG.RU in.PP.RU domen Administrator, TsVKS "MSK-IX", z informacijami o razlogu za prekinitev pooblastila.
V 30 dneh po izteku storitve (preferencialno obdobje podaljšanja) lahko skrbnik domene še vedno plača njeno podaljšanje. V primeru plačila se storitev nadaljuje.
V času predhodnega podaljšanja domen .NET.RU, .ORG.RU in .PP.RU ne bo preklicana.
Če je plačilo za podaljšanje storitve izvedeno zadnji delovni dan preferencialnega obdobja podaljšanja, RU-CENTER ni odgovoren za uspešno podaljšanje.
Brisanje domen
Registracija imena tretje stopnje domene se prekliče (domena se sprosti), če se ne podaljša v 30 (tridesetih) koledarskih dneh od datuma poteka registracije domene.
Načrtovan datum izdaje domene je objavljeno v polju za prosti datum v informacijah o domeni v storitvi Whois RU-CENTER po izteku obdobja registracije. V tem primeru se izbris izvede en dan pozneje od načrtovanega datuma izdaje, če dan izbrisa (prost datum + 1) ne pade na neradni dan ali dan po neradnem dnevu (sicer brisanje se izvede drugi delovni dan po koncu tedna).
Domene .NET.RU, .ORG.RU in .PP.RU Tehnični center izbriše na dan, ki ustreza načrtovanemu datumu izbrisa (prosti datum). Domene .NET.RU, .ORG.RU in .PP.RU bodo izbrisane drugi delovni dan po koncu tedna, če datum izbrisa pade na vikend ali dan po koncu tedna.
Sprostitev registracije domen tretje ravni prek RU-CENTRA
Vloge za registracijo izpraznjenih domen iz registra ali domen .COM.RU lahko kadar koli pred oddajo domen iz registra v skladu s storitvijo »Registracija izpraznjenih domen« vložite na spletnem mestu www..site / dražba / strežnik. v domenah.SU, .COM.RU in geodomene «.
Na dan izbrisa domene se prek spletnega vmesnika na strani sprejme vloga za storitev registracije domene, medtem ko:
- je vloga izpolnjena, če je domena v času obdelave brezplačna;
- Na e-poštne naslove za stik osebe, ki je vložila vlogo, se pošlje pismo o sprejetih ukrepih.
Spremljanje datuma obnove imena domene je dejanje, ki ga ni mogoče podcenjevati. O tem sem že pisal, zdaj pa se lotimo še ene pogoste težave - nepričakovanega izteka obdobja registracije domene. Zdi se, da vsi registrarji danes na to opozarjajo vnaprej (in ponavadi večkrat). Težava pa je v tem, da se teh pisem bodisi ne berejo ali pa nekako končajo v neželeni pošti. Na splošno se vsi ne zavedajo, da se obdobje registracije njihove domene izteka. Posledično spletno mesto ne deluje, ljudje ne razumejo zakaj in včasih porabijo veliko časa, da razumejo, kaj se dogaja. Medtem ime domene izgine iz predpomnilnika DNS in po nekaj dneh (ali celo prej, odvisno od različnih dejavnikov) obiskovalci nehajo dostopati do spletnega mesta. Poglejmo, kako spremljati datum poteka registracije domenskega imena. Seveda bash scenarij.
Kako do datuma registracije domene
Najlažja možnost je uporaba globalne baze podatkov whois. Shranjuje podatke o domen, kot so organizacija, odgovorna oseba, kontaktni podatki, datum registracije in datum poteka registracije. In prav to potrebujemo. Vzemimo za primer priljubljeno domeno. Naj bo to yandex.ru. Tu so podatki, shranjeni v bazi podatkov whois o tej domeni:
$ whois yandex.ru% Z oddajo poizvedbe v storitev Whois RIPN% se strinjate, da se boste držali naslednjih pogojev uporabe:% http://www.ripn.net/about/servpol.html#3.2 (v ruščini) % http://www.ripn.net/about/en/servpol.html#3.2 (v angleščini). domena: YANDEX.RU nserver: ns1.yandex.ru. 213.180.193.1, 2a02: 6b8 :: 1 nserver: ns2.yandex.ru.93.158.134.1, 2a02: 6b8: 0: 1 :: 1 stanje: REGISTRIRANO, DELEGIRANO, PREVERJENO org: YANDEX, LLC.registrar: RU-CENTER-RU admin-kontakt: https: // www. nic.ru/whois ustvarjeno: 1997.09.23 plačano do: 2017.10.01 brezplačno: 2017.11.01 vir: TCI Zadnja posodobitev 2017.01.03 05:46:31 MSK
Polje, ki nas zanima, je "plačano do plačila", to je datum, do katerega smo plačali za domeno.
Nadzor datuma podaljšanja domene bomo izvajali na enak način kot spremljanje potrdila, vendar veliko lažje. Pridobimo podatke o domeni, poiščemo polje, ki vsebuje datum poteka registracije, če je prisoten (če podatki whois za to domeno niso zaprti), dobimo ta datum, dobimo današnji datum in prikažemo razliko v dnevih. Če želite, lahko dodate pošiljanje pisma, če je do konca registracije na primer še manj kot 30 dni. Vendar ni tako preprosto. Ker obstajajo vsaj tri vrste zapisov o poteku registracije. Prvi izgleda takole:
Plačano: 01.10.2017
Drugi izgleda takole:
Datum poteka registracije registrarja: 2020-09-13T21: 00: 00-0700
In tretji izgleda takole:
Datum izteka registra: 2018-05-11T04: 00: 00Z
V skladu s tem moramo zagotoviti vse tri možnosti. Ali če je četrti, potem četrti. Ukvarjajmo se zaenkrat s temi tremi.
Takole izgleda scenarij:
#! / bin / bash # Če parameter ni določen, prikažite namig in zapustite, če ["$ 1" == ""] potem 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
Tukaj je rezultat tega skripta za različna področja v času tega pisanja:
$ ./check-dn-reg.sh linux.org Še 492 dni $ ./check-dn-reg.sh yahoo.com Še 2206 dni $ ./check-dn-reg.sh yandex.ru Še 270 dni $ /check-dn-reg.sh google.com Še 1349 dni $ ./check-dn-reg.sh ok.ru Še 331 dni $ ./check-dn-reg.sh vk.com Še 170 dni $ ./check -dn-reg.sh linux.org Še 492 dni $ ./check-dn-reg.sh linux.org.ru Še 345 dni
Strinjam se, izgleda udobno. Spremljanje datuma obnove imena domene s skriptom velikosti le 660 bajtov. Uporablja se lahko že pri spremljanju z Nagiosom ali Zabbixom.
Če obstajajo dodatki, komentarji, napišite v komentarje.