Welcome to Sysnet Board คู่มือ การใช้งานอุปกรณ์ Network. Please log in or sign up.
สมาชิกทั้งหมด
17,595
กระทู้ทั้งหมด
10,026
หัวข้อทั้งหมด
4,711

  • รบกวนขอ Script Update No-ip DNS
    เริ่มโดย crystalza
    Read 6,845 times
0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

 

 
คือตอนแรกใช้ os version 5.25 อยู่แต่ดันทะลึ่งไปใช้ version ใหม่ version 6.12
ทำให้ script เดิมที่มีอยู่ใช้ไม่ได้ครับ หานานแล้วก็ไม่ทำสักที รบกวนหน่อยนะครับ

# Set needed variables
:local ddnsuser "USER"
:local ddnspass "PASSWORD"
:local theinterface "INTERFACE"
:local ddnshost "HOSTNAME"

:local ipddns [:resolve $ddnshost];
:local ipfresh [ /ip address get [/ip address find interface=$theinterface ] address ]
:if ([ :typeof $ipfresh ] = nil ) do={
  :log info ("No-IPDNS: No ip address on $theinterface .")
} else={
  :for i from=( [:len $ipfresh] - 1) to=0 do={
     :if ( [:pick $ipfresh $i] = "/") do={
   :set ipfresh [:pick $ipfresh 0 $i];
     }
}

:if ($ipddns != $ipfresh) do={
   :log info ("No-IPDNS: IP-DynDNS = $ipddns")
   :log info ("No-IPDNS: IP-Fresh = $ipfresh")
  :log info "No-IPDNS: Update IP needed, Sending UPDATE...!"
  :local str "/nic/update?hostname=$ddnshost&myip=$ipfresh"
  /tool fetch address=dynupdate.no-ip.com src-path=$str mode=http user=$ddnsuser \
        password=$ddnspass dst-path=("/No-IPDNS.".$ddnshost)
   :delay 1
   :local str [/file find name="No-IPDNS.$ddnshost"];
   /file remove $str
   :global ipddns $ipfresh
 :log info "No-IPDNS: IP updated to $ipfresh!"
   } else={
    :log info "No-IPDNS: dont need changes";
   }
}

อันนี้คือของเดิมครับใช้กับ 5.25 ได้ OK เลย แต่ใช้กับของ 6.12 ไม่ได้




:global ddnsuser "..............."
:global ddnspass "................"
:global theinterface "pppoe-out1"
:global ddnshost ...........dyndns.org
:global ipddns [:resolve $ddnshost];
:global ipfresh [ /ip address get [/ip address find interface=$theinterface ] address ]
:if ([ :typeof $ipfresh ] = nil ) do={
   :log info ("DynDNS: No ip address on $theinterface .")
} else={
   :for i from=( [:len $ipfresh] - 1) to=0 do={
      :if ( [:pick $ipfresh $i] = "/") do={
    :set ipfresh [:pick $ipfresh 0 $i];
      }
}

:if ($ipddns != $ipfresh) do={
    :log info ("DynDNS: IP-DynDNS = $ipddns")
    :log info ("DynDNS: IP-Fresh = $ipfresh")
   :log info "DynDNS: Update IP needed, Sending UPDATE...!"
   :global str "/nic/update\?hostname=$ddnshost&myip=$ipfresh&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
   /tool fetch address=members.dyndns.org src-path=$str mode=http user=$ddnsuser \
         password=$ddnspass dst-path=("/DynDNS.".$ddnshost)
    :delay 1
    :global str [/file find name="DynDNS.$ddnshost"];
    /file remove $str
    :global ipddns $ipfresh
  :log info "DynDNS: IP updated to $ipfresh!"
    } else={
     :log info "DynDNS: dont need changes";
    }
}




:global ddnsuser "..............."
:global ddnspass "................"
:global theinterface "pppoe-out1"
:global ddnshost ...........dyndns.org
:global ipddns [:resolve $ddnshost];
:global ipfresh [ /ip address get [/ip address find interface=$theinterface ] address ]
:if ([ :typeof $ipfresh ] = nil ) do={
   :log info ("DynDNS: No ip address on $theinterface .")
} else={
   :for i from=( [:len $ipfresh] - 1) to=0 do={
      :if ( [:pick $ipfresh $i] = "/") do={
    :set ipfresh [:pick $ipfresh 0 $i];
      }
}

:if ($ipddns != $ipfresh) do={
    :log info ("DynDNS: IP-DynDNS = $ipddns")
    :log info ("DynDNS: IP-Fresh = $ipfresh")
   :log info "DynDNS: Update IP needed, Sending UPDATE...!"
   :global str "/nic/update\?hostname=$ddnshost&myip=$ipfresh&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
   /tool fetch address=members.dyndns.org src-path=$str mode=http user=$ddnsuser \
         password=$ddnspass dst-path=("/DynDNS.".$ddnshost)
    :delay 1
    :global str [/file find name="DynDNS.$ddnshost"];
    /file remove $str
    :global ipddns $ipfresh
  :log info "DynDNS: IP updated to $ipfresh!"
    } else={
     :log info "DynDNS: dont need changes";
    }
}

[/quote]

ยังไม่สามารถใช้ได้เลยอะครับ งงเหมือนกัน ดูใน log ก็นิ่งสนิทเลยครับไม่มี log ขึ้น

ลองกด Run Script แบบ manual ดูสิครับ แล้วไปดูใน log ว่าทำงานไหม
ถ้าทำงาน ก็ไปเช็ค Scheduler อีกที ว่าทำไมมันถึงไม่เรียก script โดยอัตโนมัติ