اخر تحديث في مايو 27, 2023 بواسطة حمدي بانجار
Dynamic DNS سكربت التحديث التقائي لنظام No-IP DNS في سيرفر الميكروتك
تم تصميم هذا السكربت لاستخدام API No-IP Update الذي يوفر وصولاً مباشرًا إلى نظام تحديث DNS الخاص بـ No-IP.
يستند هذا السكربت إلى Dynamic DNS Update Script لـ DNSoMatic.com. حيث تم اختباره للعمل على جهاز RouterOS 5.13.
1. إنشاء سكربت جديد باسم no-ip_ddns_update
الأذونات التالية مطلوبة لتشغيل هذا السكربت :
- write
- test
- read
2. الصق شفرة المصدر التي تظهر أدناه. قم بتحرير user, password, hostname و interface لمطابقة الإعداد الخاص بك على سيرفرك.
ملاحظة : لنسخ السكربتات ضع المؤشر على السكربت وستظهر علامة + قم بالنقر عليها وانسخ السكربت
# No-IP automatic Dynamic DNS update #--------------- Change Values in this section to match your setup ------------------ # No-IP User account info :local noipuser "your_no-ip_user" :local noippass "your_no-ip_pass" # Set the hostname or label of network to be updated. # Hostnames with spaces are unsupported. Replace the value in the quotations below with your host names. # To specify multiple hosts, separate them with commas. :local noiphost "hostname.no-ip.net" # Change to the name of interface that gets the dynamic IP address :local inetinterface "your_external_interface" #------------------------------------------------------------------------------------ # No more changes need :global previousIP :if ([/interface get $inetinterface value-name=running]) do={ # Get the current IP on the interface :local currentIP [/ip address get [find interface="$inetinterface" disabled=no] address] # Strip the net mask off the IP address :for i from=( [:len $currentIP] - 1) to=0 do={ :if ( [:pick $currentIP $i] = "/") do={ :set currentIP [:pick $currentIP 0 $i] } } :if ($currentIP != $previousIP) do={ :log info "No-IP: Current IP $currentIP is not equal to previous IP, update needed" :set previousIP $currentIP # The update URL. Note the "\3F" is hex for question mark (?). Required since ? is a special character in commands. :local url "http://dynupdate.no-ip.com/nic/update\3Fmyip=$currentIP" :local noiphostarray :set noiphostarray [:toarray $noiphost] :foreach host in=$noiphostarray do={ :log info "No-IP: Sending update for $host" /tool fetch url=($url . "&hostname=$host") user=$noipuser password=$noippass mode=http dst-path=("no-ip_ddns_update-" . $host . ".txt") :log info "No-IP: Host $host updated on No-IP with IP $currentIP" } } else={ :log info "No-IP: Previous IP $previousIP is equal to current IP, no update needed" } } else={ :log info "No-IP: $inetinterface is not currently running, so therefore will not update." }
3. إنشاء scheduler جديد لتشغيل هذا السكربت كل 5 دقائق.
/system scheduler add comment="Update No-IP DDNS" disabled=no interval=5m \ name=no-ip_ddns_update on-event=no-ip_ddns_update policy=read,write,test
السكربت البديل :
يستخدم البرنامج النصي البديل حل DNS ويستند إلى وثائق http://wiki.mikrotik.com/wiki/Manual:Scripting-examples ووثائق NO-IP DNS Update API http://www.no-ip.com/integrate/
يمكن تعديله للاستخدام مع خدمات DNS الديناميكية الأخرى المعتمدة ReST API.
##############Script Settings################## :local NOIPUser "no-ip.com LOGIN" :local NOIPPass "no-ip.com PASSWORD" :local WANInter "MikroTik Router WAN Interface Name" ############################################### :local NOIPDomain "$NOIPUser.no-ip.org" :local IpCurrent [/ip address get [find interface=$WANInter] address]; :for i from=( [:len $IpCurrent] - 1) to=0 do={ :if ( [:pick $IpCurrent $i] = "/") do={ :local NewIP [:pick $IpCurrent 0 $i]; :if ([:resolve $NOIPDomain] != $NewIP) do={ /tool fetch mode=http user=$NOIPUser password=$NOIPPass url="http://dynupdate.no-ip.com/nic/update\3Fhostname=$NOIPDomain&myip=$NewIP" keep-result=no :log info "NO-IP Update: $NOIPDomain - $NewIP" } } }
ملحوظة:
:local NOIPDomain “$NOIPUser.no-ip.org” – صحيح إذا كان اسم المستخدم هو مجال المستوى الثالث ومسجل في المجال *. no-ip.org (على سبيل المثال: username = testuser1 and domain = testuser1.no-ip.org).
في حالة أخرى ، يجب تغيير السلسلة.
يتم استخدام الرمز “\ 3F” لاستبدال الرمز المحمي “؟” في عنوان URL.
اختبار للعمل على جهاز التوجيه 5.21.
##############Script Settings################## :local NOIPUser "testuser1" :local NOIPPass "testpassword" :local WANInter "ether1" ###############################################
إذا كنت تستخدم WAN-interface أخرى ، فاستخدمها (مثال: pppoe-out1 ، pptp-out1 ، l2tp-out1).
أنتهى … Dynamic DNS سكربت التحديث التقائي لنظام No-IP DNS في سيرفر الميكروتك
Dynamic DNS سكربت التحديث التقائي لنظام No-IP DNS في سيرفر الميكروتك
ملاحظة :
قد تكون المقالة محمية ضد النقل وبالتالي لنسخ الاكواد ان وجدت انقر على علامة + بأعلى يمين الكود والتي تظهر عند تمرير الماوس على الكود ثم انسخة.
الى هنا نكون وصلنا الى نهاية موضوعنا اليوم Dynamic DNS سكربت التحديث التقائي لنظام No-IP DNS في سيرفر الميكروتك
والذي نتمنى ان ينال رضاكم واعجابكم والى اللقاء في موضوع جديد شيق ورائع
وحتى ذلك الحين لاتنسو الاهتمام بصحتكم وحفظكم الله …
اذا اعجبك الموضوع Dynamic DNS سكربت التحديث التقائي لنظام No-IP DNS في سيرفر الميكروتك لاتبخل علينا بمشاركتة على مواقع التواصل الاجتماعي ليستفيذ منه الغير,
كما نتمنى اشتراككم في قناة الموقع على اليوتيوب بالضغط هنا وكذلك الاشتراك في مجموعة الفيس بوك بالضغط هنا والتيليقرام بالضغط هنا وكذلك التسجيل بالموقع لتتمكنو من تحميل بعض الملفات الخاصة بالأعضاء
كما يمكنكم رفع ملفاتكم مجانا على مركز ملفات حضرموت التقنية بالضغط هنا ولاتترددو في وضع أي استفسارات للرد عليكم .
دمتم بكل ود والسلام عليكم ورحمة الله وبركاتة … حضرموت التقنية