أجهزة الكمبيوتر شبابيك إنترنت

تاريخ الكوارث gos reg html. مراقبة تاريخ تجديد اسم المجال. لنقم الآن بإنشاء البرامج النصية الرئيسية لمزيد من العمل.

يوم جيد يا اصدقاء! دعنا نلقي نظرة على تسجيل المستخدم في PHP معك. أولاً ، دعنا نحدد شروط تسجيل المستخدم لدينا:

  • نقوم بتشفير كلمة المرور باستخدام الخوارزمية MD5
  • ستكون كلمة المرور "مملحة"
  • تحقق من توفر تسجيل الدخول
  • تفعيل المستخدم بالحرف.
  • كتابة وتخزين البيانات بتنسيق نظم إدارة قواعد البيانات MySQL

لكتابة هذا البرنامج النصي ، نحتاج إلى فهم ما هو تسجيل المستخدم. تسجيل المستخدم هو تلقي البيانات من مستخدم حقيقي ، ومعالجة وتخزين البيانات.

إذا شرح بكلمات بسيطةثم التسجيل هو مجرد تسجيل وتخزين بيانات معينة يمكننا من خلالها تفويض المستخدم في حالتنا - هذا هو تسجيل الدخول وكلمة المرور.

التفويض هو منح شخص معين أو مجموعة من الأشخاص الحق في تنفيذ إجراءات معينة ، بالإضافة إلى عملية التحقق من هذه الحقوق عند محاولة القيام بهذه الإجراءات. ببساطة ، باستخدام التفويض ، يمكننا تحديد الوصول إلى محتوى أو آخر على موقعنا.

لنأخذ في الاعتبار بنية أدلة البرنامج النصي لتنفيذ تسجيلنا بترخيص. نحن بحاجة إلى تقسيم البرامج النصية إلى مكونات منطقية. لقد وضعنا وحدتي التسجيل والترخيص في دليل منفصل. سنضع أيضًا الاتصال بقاعدة البيانات في أدلة منفصلة. MySQLملف مع وظائف مخصصة نمط الملف CSSونموذجنا لغة البرمجة... تتيح لك هذه البنية التنقل بسرعة بين البرامج النصية. تخيل أن لديك موقعًا كبيرًا به مجموعة من الوحدات ، إلخ. وإذا لم يكن هناك ترتيب ، فسيكون من الصعب جدًا العثور على شيء في مثل هذه الفوضى.

نظرًا لأننا سنخزن جميع البيانات في نظم إدارة قواعد البيانات MySQL، فلنقم بعد ذلك بإنشاء جدول صغير نخزن فيه بيانات التسجيل.

أولاً ، تحتاج إلى إنشاء جدول في قاعدة البيانات. سيتم استدعاء الجدول bez_regأين بيزهي بادئة الجدول ، و ريجاسم الطاولة.

هيكل الجدول: bez_reg

- - بنية الجدول `bez_reg` - إنشاء جدول 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) NOT NULL،` active_hex` varchar (32) NOT NULL، `status` int (1) NOT NULL، PRIMARY KEY (` id`)) ENGINE = MyISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1 ؛

لنقم الآن بإنشاء البرامج النصية الرئيسية لمزيد من العمل.

ملف INDEX.PHP

ملف CONFIG.PHP

"); ?>

ملف 404.html

خطأ 404

خطأ 404

حدث خطأ 404 في الصفحة

يعود


ملف BD.PHP

ملف INDEX.HTML

تسجيل مستخدم PHP MySQL مع تفعيل البريد الإلكتروني



ملف FUNCT.PHP

"." \ n "؛ إذا (is_array ($ data)) (foreach ($ data as $ val) $ err. ="

  • ". $ val."
  • "." \ n "؛) وإلا $ يخطئ. ="
  • ". بيانات $."
  • "." \ n "؛ $ يخطئ. =""." \ n "؛ return $ err؛) / ** غلاف بسيط لاستعلامات MySQL *param string $ sql * / function mysqlQuery ($ sql) ($ res = mysql_query ($ sql)؛ / * التحقق من النتيجة هذا يعرض الاستعلام الحقيقي المرسل إلى MySQL ، بالإضافة إلى الخطأ. ملائم للتصحيح. * / if (! $ res) ($ message = "استعلام غير صالح:". mysql_error (). "\ n" ؛ $ message. = " الاستعلام بالكامل: ". $ sql؛ die ($ message)؛) return $ res؛) / ** منشئ الملح البسيط *param string $ sql * / function salt () ($ salt = substr (md5 (uniqid () ) ، - 8) ؛ إرجاع الملح $ ؛)

    دعنا نبدأ كتابة التسجيل. أولاً ، سنحتاج إلى عمل نموذج نموذج تسجيل حتى يتمكن المستخدم من إدخال بياناته للمعالجة. بعد ذلك ، سنحتاج إلى كتابة معالج النموذج نفسه ، والذي سيتحقق من بيانات المستخدم المدخلة للتأكد من صحتها. بعد التحقق من البيانات بنجاح ، نقوم بكتابتها في قاعدة البيانات الخاصة بنا وإرسال رسالة إلى المستخدم لتفعيل حسابه.

    ملف REG.PHP

    لقد قمت بالتسجيل بنجاح! يرجى تفعيل حسابك !!"؛ // تنشيط الحساب إذا (isset ($ _ GET [" key "])) (// Check the key $ sql =" SELECT * FROM `". BEZ_DBPREFIX. "Reg` WHERE` active_hex` =" ". Escape_str ($ _GET ["key"]). "" "؛ $ Res = mysqlQuery ($ sql)؛ if (mysql_num_rows ($ res) == 0) $ err =" مفتاح التنشيط غير صحيح! "؛ // تحقق من وجود أخطاء واعرضها للمستخدم إذا (count ($ err)> 0) echo showErrorMessage ($ err) ؛ else (// احصل على عنوان المستخدم $ row = mysql_fetch_assoc ($ res) ؛ $ email = $ row ["تسجيل الدخول "] ؛ // تنشيط مستخدم الحساب $ sql =" UPDATE` ". BEZ_DBPREFIX." reg` SET `status` = 1 WHERE` login` =" ". $ email." "" ؛ $ res = mysqlQuery ($ sql )؛ // أرسل بريدًا إلكترونيًا لتنشيط $ title = "(! LANG: تم تنشيط حسابك على الموقع http: // بنجاح"; $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("/^!} [البريد الإلكتروني محمي](+ \.) + (2،6) $ / i "، $ _POST [" email "])) $ err =" تم إدخال البريد الإلكتروني بشكل غير صحيح "." \ N "؛) إذا (فارغ ($ _ POST [ "pass"])) $ err = "حقل كلمة المرور لا يمكن أن يكون فارغًا" ؛ إذا (فارغ ($ _ POST ["pass2"])) $ err = "حقل تأكيد كلمة المرور لا يمكن أن يكون فارغًا" ؛ // تحقق من وجود أخطاء واعرض للمستخدم إذا كان (count ($ err)> 0) echo showErrorMessage ($ err) ؛ وإلا (/ * استمر في فحص البيانات المدخلة تحقق من كلمات المرور للمطابقة * / if ($ _ POST ["pass"]! = $ _POST ["pass2"]) $ err = "كلمات المرور غير متطابقة" ؛ // تحقق من وجود أخطاء واعرضها للمستخدم إذا (count ($ err)> 0) echo showErrorMessage ($ err)؛ else (/ * تحقق إذا كان لدينا مثل هذا المستخدم في قاعدة البيانات * / $ sql = "SELECT` login` FROM` ". BEZ_DBPREFIX." reg` WHERE` login` = "". escape_str ($ _ POST ["email"]). "" "؛ $ res = mysqlQuery ($ sql)؛ if (mysql_num_rows ($ res)> 0) $ err =" آسف تسجيل الدخول: ". $ _POST [" بريد إلكتروني "]."مشغول! "؛ // تحقق من وجود أخطاء واعرضها للمستخدم إذا (عد ($ err)> 0) echo showErrorMessage ($ err)؛ else (// احصل على HASH من الملح $ salt = salt ()؛ / / ملح كلمة المرور $ pass = md5 (md5 ($ _ POST ["pass"]). $ salt)؛ / * إذا كان كل شيء على ما يرام ، فاكتب البيانات إلى قاعدة البيانات * / $ sql = "INSERT INTO`". BEZ_DBPREFIX . "reg` VALUES (" "،" ". escape_str ($ _ POST [" email "])." "،" ". $ pass." "،". $ salt. ""، "". md5 ( $ salt). ""، 0) "؛ $ res = mysqlQuery ($ sql)؛ // إرسال بريد إلكتروني لتفعيل $ url = BEZ_HOST." less / reg /؟ mode = reg & key = ". md5 ($ salt )؛ $ title = "(! LANG: التسجيل على http: / / site"; $message = "Для активации Вашего акаунта пройдите по ссылке ". $url .""; sendMessageMail($_POST["email"], BEZ_MAIL_AUTOR, $title, $message); //Сбрасываем параметры header("Location:". BEZ_HOST ."less/reg/?mode=reg&status=ok"); exit; } } } } ?>!}

    ملف REG_FORM.HTML

    تسجيل مستخدم PHP MySQL مع تفعيل البريد الإلكتروني

    بريد الالكتروني *:
    كلمه السر *:
    تأكيد كلمة المرور *:

    الحقول ذات الأيقونة *مطلوبة

    نظرًا لأننا جاهزون لتسجيل المستخدمين ، فقد حان الوقت لكتابة تفويض. لنقم بإنشاء نموذج لترخيص المستخدم ، ثم نكتب معالج نموذج التفويض وأخيراً نصنع برنامجًا نصيًا show.phpوالتي ستوضح لنا ما إذا كنا مرخصين في النظام أم لا.

    ملف AUTH.PHP

    0) صدى showErrorMessage ($ err) ؛ else (/ * أنشئ استعلامًا لجلبه من قاعدة البيانات للتحقق من أصالة المستخدم * / $ sql = "SELECT * FROM`". BEZ_DBPREFIX. "reg` WHERE` login` = "". escape_str ($ _ POST [ "email"]). "" AND `status` = 1"؛ $ res = mysqlQuery ($ sql)؛ // إذا تطابق تسجيل الدخول ، فتحقق من كلمة المرور إذا (mysql_num_rows ($ res)> 0) (// Get data من الجدول $ row = mysql_fetch_assoc ($ res) ؛ if (md5 (md5 ($ _ POST ["pass"]). $ row ["salt"]) == $ row ["pass"]) ($ _SESSION [ "user"] = true ؛ // إعادة تعيين رأس المعلمات ("الموقع:". BEZ_HOST. "Less / reg /؟ Mode = auth") ؛ exit ؛) else echo showErrorMessage ("كلمة مرور خاطئة!") ؛) صدى آخر showErrorMessage ("تسجيل الدخول ". $ _POST [" بريد إلكتروني "]."غير موجود! ") ؛))؟>

    بالنسبة لأولئك الذين لديهم أحدث إصدار من PHP ، أنشر هذا البرنامج النصي باستخدام PDOحيث تمديد MySQLتم إهماله وإزالته من إصدار PHP الأحدث. تنزيل التسجيل والترخيص php mysql pdo

    تم تحديث الأرشيف في 24 فبراير 2015.

    انتباه:إذا كنت تستخدم هذا البرنامج النصي على خادم محلي مثل دنور,XAMPP، إذًا يجب ألا تنتظر وصول الرسائل إلى صندوق البريد الخاص بك. الحروف فارغة ارسل بريد... الخامس دنويريمكنك العثور عليها على طول الطريق Z: \ tmp \! Sendmail \يمكنك فتح هذه الملفات في أي عميل بريد.

    إذا لم يتم دفع تجديد خدمة تسجيل النطاق .RU و. إذا كان تاريخ الإغلاق المجدول يقع في عطلة نهاية الأسبوع أو يوم عطلة ، فسيتم ترحيل إيقاف النطاق إلى أول يوم عمل بعد عطلة نهاية الأسبوع.

    بعد تعليق تفويض المجال ، يتم إعادة توجيه جميع طلبات http إلى النطاق إلى صفحة الخدمة التي تحتوي على معلومات حول الفشل المؤقت في توفير الخدمة. يمكن لمسؤولي نطاقات .RU و .РФ رفض إعادة توجيههم إلى صفحة الخدمة قبل انتهاء فترة تسجيل اسم المجال عن طريق إرسال طلب بأي شكل إلى العنوان.

    في غضون 30 يومًا بعد انتهاء صلاحية الخدمة (خلال فترة التجديد التفضيلية) ، يحتفظ مسجل نطاقات .RU أو .РФ أو.SU بفرصة الدفع مقابل تجديده.

    في حالة السداد يتم استئناف تقديم الخدمة.

    إزالة نطاقات .RU و .SU و .РФ من السجل لعدم الدفع

    إذا لم يتم دفع تجديد تسجيل النطاق في غضون 30 يومًا بعد نهايته (خلال فترة التجديد التفضيلي) ، يتم إلغاء التسجيل (يتم تحرير النطاق).

    نشر في حقل التاريخ الحر للمعلومات حول المجال بعد انتهاء فترة التسجيل الخاصة به.

    يمكن لـ RU-CENTER حذف مجال .SU في أي وقت من تاريخ التاريخ الحر المخطط له. إذا لم يحدث ذلك ، فسيتم حذف المجالات تلقائيًا بواسطة المركز الفني.

    خلال فترة التجديد الوقائي ، لن يتم إلغاء أسماء نطاقات .RU و .РФ.

    تاريخ حذف المجال من قبل المركز الفني

    يتم حذف المجالات .RU و .РФ و SU بواسطة المركز الفني في اليوم المقابل للتاريخ المخطط للحذف (تاريخ مجاني).

    سيتم حذف المجالات .RU أو .РФ أو.SU في يوم العمل الثاني بعد عطلة نهاية الأسبوع إذا كان تاريخ الحذف في نهاية الأسبوع أو في اليوم التالي لعطلة نهاية الأسبوع.

    يبدأ إجراء حذف المجالات في المركز الفني بالعمل:

    • للنطاقات .RU و .РФ الساعة 17:00 (MSK) ،
    • للمجالات. U الساعة 19:30 (MSK).

    التسجيل من خلال RU-CENTER لنطاقات .RU و .SU و .РФ الخاضعة للإصدار

    يمكن تقديم طلبات تسجيل النطاق الذي يتم إصداره من السجل على www..site / المزاد / الخادم قبل تحرير النطاق من السجل.

    بالنسبة لنطاقات .RU و .РФ ، يبدأ قبول الطلبات قبل 30 يومًا من يوم تحرير المجال من السجل وفقًا لخدمة تسجيل المجال الصادر في مجالات RU و RF.

    بالنسبة لنطاقات SU - في أي وقت قبل تحرير المجال من السجل وفقًا لخدمة التسجيل للمجال الذي تم إخلاؤه في مجالات SU و COM.RU و NET.RU و ORG.RU و PP.RU والمجالات الجغرافية.

    بالنسبة إلى المجالات .RU و .SU و .РФ - في يوم إزالة النطاق من السجل من خلال واجهة الويب على الصفحة ، بينما:

    • يتم إرسال خطاب حول الإجراءات المتخذة إلى عناوين الاتصال الخاصة بالشخص الذي قدم الطلب.

    2. الدولية والأجنبية

    إذا لم يتم دفع تجديد الخدمة قبل انتهاء فترة صلاحيتها ، يتم تعليق تقديم الخدمة (يتم إلغاء تفويض المجال) في اليوم التالي بعد التاريخ المحدد في حقل تاريخ انتهاء الصلاحية في. إذا وقع تاريخ الإغلاق المجدول في عطلة نهاية الأسبوع أو عطلة ، فسيتم ترحيل إيقاف النطاق إلى يوم العمل الثاني بعد عطلة نهاية الأسبوع.

    في غضون 30 يومًا بعد انتهاء صلاحية الخدمة ، يحتفظ مسؤول المجال بفرصة الدفع مقابل التجديد. في حالة السداد يتم استئناف تقديم الخدمة.

    إزالة النطاقات من السجلات في المجالات الوطنية والدولية

    إذا لم يتم دفع تجديد تسجيل النطاق في غضون 30 يومًا من تاريخ انتهاء صلاحية الخدمة ، فإن RU-CENTER ستبدأ إجراء حذف النطاق في السجل. إذا صادف تاريخ الحذف عطلة نهاية الأسبوع أو عطلة ، فسيتم تأجيل بدء إجراء حذف النطاق إلى يوم العمل الثاني بعد عطلة نهاية الأسبوع.

    يستغرق إجراء حذف مجال في السجل 35 يومًا. الاستثناءات هي:

    • .HN التي يستمر حذفها لمدة 15 يومًا ، ولا يمكن استعادة النطاق أو تجديده خلال هذه الفترة ؛
    • المجالات .NAME ، التي تم حذفها بعد 30 يومًا من انتهاء فترة التسجيل.
    • المجالات .KZ ، التي تم حذفها بعد 20 يومًا من انتهاء فترة التسجيل.

    في هذه الحالة ، يحدد السجل لمدة 30 يومًا الحالة المقابلة للمجال في:
    NET ، .COM ، .CC ، .TV ، .AG ، .BZ ، .LC ، .MN ، .SC ، .VC - RedemptionPeriod ،
    .BIZ ، .TEL - قيد الحذف ،
    .INFO ، .ORG ، .ME ، .MOBI ، .AERO ، .TRAVEL ، .XXX ، .PRO - PendingDelete Restorable.

    يُشار إلى تاريخ بدء فترة الثلاثين يومًا في الحقل:
    تاريخ التحديث لنطاقات .NET و .COM و .CC و .TV و .AG و .BZ و .HN و .LC و .MN و .SC و .VC
    تاريخ آخر تحديث للمجال - BIZ أو .TEL أو
    تاريخ آخر تحديث - INFO ، .ORG ، .ME ، .MOBI ، .AERO ، .TRAVEL ، .XXX ، .PRO.

    استعادة المجال

    في غضون 25 يومًا من بدء إجراء الحذف ، يمكن استعادة المجال وتجديده (باستثناء .HN ، NAME ، .KZ) بناءً على طلب مسؤول المجال.

    إذا لم تتم استعادة المجال وتجديده ، فستتم إزالته من السجل بعد 5 أيام من نهاية فترة RedemptionPeriod (Pending Delete أو PendingDelete Restorable). خلال هذه الأيام الخمسة (حالة المجال في السجل - PendingDelete) ، من المستحيل استعادة أو تجديد أو تسجيل المجال.

    بعد إزالة النطاق من السجل ، يمكن لأي شخص تسجيل النطاق.

    3. مجالات المستوى الثالث

    إزالة تفويض المجال لعدم الدفع

    إذا لم يتم دفع تجديد الخدمة قبل انتهاء فترة صلاحيتها ، يتم تعليق تقديم الخدمة (يتم إلغاء تفويض النطاق) في اليوم التالي بعد التاريخ المحدد في حقل الدفع حتى نهاية فترة صلاحيته في خدمة Whois. بالنسبة لمجالات .NET.RU و .ORG.RU و .PP.RU ، يتم تعليق الخدمة (يتم إلغاء تفويض المجال) في اليوم المحدد في الحقل المدفوع حتى في خدمة Whois.

    إذا وقع تاريخ الإغلاق المجدول في عطلة نهاية الأسبوع أو عطلة ، فسيتم ترحيل إيقاف النطاق إلى يوم العمل الثاني بعد عطلة نهاية الأسبوع.

    بعد تعليق تفويض المجال ، تتم إعادة توجيه جميع طلبات http إلى المجالات .NET.RU و .ORG.RU و .PP.RU إلى الموقع الرسمي لـ .NET.RU و .ORG.RU و .PP.RU مسؤول المجالات ، TsVKS "MSK-IX" ، مع معلومات حول سبب إنهاء التفويض.

    في غضون 30 يومًا بعد انتهاء صلاحية الخدمة (فترة تجديد تفضيلية) ، لا يزال بإمكان مسؤول النطاق الدفع مقابل تجديدها. في حالة السداد يتم استئناف تقديم الخدمة.

    خلال فترة التجديد الوقائي ، لن يتم إلغاء نطاقات .NET.RU و .ORG.RU و .PP.RU.

    إذا تم السداد مقابل تجديد الخدمة في آخر يوم عمل من فترة التجديد التفضيلية ، فإن RU-CENTER ليست مسؤولة عن التجديد الناجح.

    حذف المجالات

    يتم إلغاء تسجيل اسم نطاق من المستوى الثالث (يتم تحرير المجال) إذا لم يتم تجديده خلال 30 (ثلاثين) يومًا تقويميًا من تاريخ انتهاء تسجيل اسم النطاق.

    تاريخ إصدار المجال المخططتم نشره في حقل التاريخ الحر في معلومات المجال في خدمة Whois RU-CENTER بعد انتهاء فترة التسجيل الخاصة به. في هذه الحالة ، يتم إجراء الحذف بعد يوم واحد من تاريخ الإصدار المخطط له ، إذا كان يوم الحذف (تاريخ حر + 1) لا يقع في يوم عطلة أو يوم يلي يوم عطلة (خلاف ذلك ، يتم الحذف في ثاني يوم عمل بعد عطلة نهاية الأسبوع).

    يحذف المركز الفني نطاقات .NET.RU و .ORG.RU و .PP.RU في اليوم المقابل لتاريخ الحذف المخطط له (تاريخ حر). سيتم حذف المجالات .NET.RU و .ORG.RU و .PP.RU في يوم العمل الثاني بعد عطلة نهاية الأسبوع إذا وقع تاريخ الحذف في عطلة نهاية الأسبوع أو في اليوم التالي لعطلة نهاية الأسبوع.

    يتم تحرير التسجيل من خلال RU-CENTER لنطاقات المستوى الثالث

    يمكن تقديم طلبات تسجيل المجالات التي تم إخلاؤها من السجل أو نطاقات .COM.RU على الموقع www..site / المزاد / الخادم في أي وقت قبل تحرير المجالات من السجل وفقًا لخدمة "تسجيل المجالات التي تم إخلاؤها في المجالات الجغرافية والمجالات .COM.RU ".

    في يوم حذف النطاق ، يتم قبول طلب خدمة تسجيل المجال من خلال واجهة الويب على الصفحة ، بينما:

    • يكون التطبيق راضيًا إذا كان النطاق مجانيًا وقت معالجته ؛
    • يتم إرسال خطاب إلى عناوين البريد الإلكتروني لجهة الاتصال الخاصة بالشخص الذي قدم الطلب حول الإجراءات المتخذة.

    مراقبة تاريخ تجديد اسم النطاق هو إجراء لا ينبغي التقليل من شأنه. لقد كتبت بالفعل عن ذلك ، والآن دعونا نتعامل مع مشكلة شائعة أخرى - انتهاء الصلاحية غير المتوقع لفترة تسجيل اسم النطاق. يبدو أن جميع المسجلين اليوم يذكرون بهذا مسبقًا (وعادةً عدة مرات). لكن المشكلة تكمن في أن هذه الرسائل إما لا تتم قراءتها ، أو أنها تنتهي بطريقة ما في رسائل بريد عشوائي. بشكل عام ، لا يدرك الجميع أن فترة تسجيل اسم المجال الخاص بهم تنفد. نتيجة لذلك ، الموقع لا يعمل ، والناس لا يفهمون السبب ، وفي بعض الأحيان يقضون الكثير من الوقت لفهم ما يحدث. وفي الوقت نفسه ، يختفي اسم المجال من ذاكرة التخزين المؤقت لنظام أسماء النطاقات ، وبعد يومين (أو حتى قبل ذلك ، اعتمادًا على عوامل مختلفة) ، يتوقف الزوار عن الوصول إلى الموقع. دعونا نرى كيفية مراقبة تاريخ انتهاء صلاحية تسجيل اسم المجال. بطبيعة الحال ، نص باش.

    كيفية الحصول على تاريخ تسجيل اسم المجال

    الخيار الأسهل هو استخدام قاعدة بيانات whois العالمية. يخزن معلومات حول أسماء النطاقات مثل المنظمة والشخص المسؤول وتفاصيل الاتصال وتاريخ التسجيل وتاريخ انتهاء التسجيل. وهذا بالضبط ما نحتاجه. لنأخذ المجال الشائع كمثال. فليكن yandex.ru. فيما يلي المعلومات المخزنة في قاعدة بيانات whois حول هذا المجال:

    $ whois yandex.ru٪ بإرسال استعلام إلى خدمة Whois لـ RIPN ، فإنك توافق على الالتزام بشروط الاستخدام التالية:٪ http://www.ripn.net/about/servpol.html#3.2 (باللغة الروسية) ٪ http://www.ripn.net/about/en/servpol.html#3.2 (باللغة الإنجليزية). المجال: 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 :: حالة واحدة: منظمة مسجلة ، مفوضة ، تم التحقق منها: YANDEX ، LLC. المسجل: RU-CENTER-RU admin-contact: https: // www. nic.ru/whois تم إنشاؤه: 1997.09.23 مدفوع حتى: 2017.10.01 تاريخ مجاني: 2017.11.01 المصدر: TCI آخر تحديث في 2017.01.03 05:46:31 MSK

    الحقل الذي يهمنا هو "مدفوع الأجر" ، وهذا هو التاريخ الذي سددنا فيه مقابل النطاق.

    سنقوم بمراقبة تاريخ تجديد اسم النطاق بنفس طريقة مراقبة الشهادة ، ولكن أسهل بكثير. نحصل على بيانات المجال ، ونبحث عن حقل يحتوي على تاريخ انتهاء التسجيل ، إذا كان موجودًا (إذا لم يتم إغلاق بيانات whois لهذا المجال) ، احصل على هذا التاريخ ، واحصل على تاريخ اليوم واعرض الفرق بالأيام. إذا كنت ترغب في ذلك ، يمكنك إضافة إرسال خطاب إذا كان هناك ، على سبيل المثال ، أقل من 30 يومًا متبقية قبل نهاية التسجيل. لكن الأمر ليس بهذه البساطة. لأن هناك ثلاثة أنواع على الأقل من سجلات انتهاء التسجيل. الأول يشبه هذا:

    المدفوع حتى: 2017.10.01

    الثاني يشبه هذا:

    تاريخ انتهاء تسجيل المسجل: 2020-09-13T21: 00: 00-0700

    والثالث يشبه هذا:

    تاريخ انتهاء السجل: 2018-05-11T04: 00: 00Z

    وبناءً على ذلك ، نحتاج إلى توفير جميع الخيارات الثلاثة. أو إذا كان هناك رابع ، فعندئذ الرابع. دعونا نتعامل مع هؤلاء الثلاثة الآن.

    هذا ما يبدو عليه البرنامج النصي:

    #! / bin / bash # إذا لم يتم تحديد المعلمة ، اعرض تلميحًا واخرج إذا ["$ 1" == ""] ثم 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

    فيما يلي إخراج هذا البرنامج النصي لمجالات مختلفة في وقت كتابة هذا التقرير:

    $ ./check-dn-reg.sh linux.org بقي 492 يومًا $ ./check-dn-reg.sh yahoo.com بقي 2206 يومًا $ ./check-dn-reg.sh yandex.ru تبقي 270 يومًا $. /check-dn-reg.sh google.com 1349 يومًا متبقي $ ./check-dn-reg.sh ok.ru 331 يومًا متبقي $ ./check-dn-reg.sh vk.com 170 يومًا متبقية $ ./check -dn-reg.sh linux.org 492 يومًا متبقي $ ./check-dn-reg.sh linux.org.ru.ru 345 يوم متبقي

    موافق ، يبدو مريحًا. مراقبة تاريخ تجديد اسم المجال باستخدام نص برمجي بحجم 660 بايت فقط. يمكن استخدامه بالفعل في المراقبة باستخدام Nagios أو Zabbix.

    إذا كانت هناك إضافات وتعليقات ، فاكتب في التعليقات.