ผมควรจะทำอะไรเพิ่มครับ เพื่อให้ระบบ DDNS มันทำงานได้ ทุกวันนี้ต้องโทรไปขอ ip จาก TOT วันละหลายครั้ง แล้วมาอัพเดท dns ด้วยมือ ถึงจะทำให้เจ้าของอาคารดูกล้องผ่านเน็ตได้ นั่งลองนู่นลองนี่ทุกวัน แต่ก็ไม่ได้ผลครับ พอจะช่วยรีโมทเข้ามาดูให้ได้ไหมครับ ว่าผมทำอะไรผิดไป Mikrotik ถึงไม่ส่งค่าไปให้เว็บ ddns อัพเดท IP :'((http://image.ohozaa.com/i/234/bgZyOp.jpg) (http://image.ohozaa.com/view2/xurrZvIQUpLDXzu8)
ภาพด้านล่าง มีอะไรผิดปกติไหมครับ ผมลองกดที่แถบ Environment แล้วเห็นค่าในช่อง Value เป็น False
(http://image.ohozaa.com/i/627/kRKf0s.jpg) (http://image.ohozaa.com/view2/xurBih8sgD8KxG6D)
1. script ก็อปในเวปบอร์ดครับ ส่วนที่ไม่รัน น่าจะคำสั่งจาก Scheduler ผิดครับ คุณตั้งชื่อไว้ เป็นตัวใหญ่ แต่เรียกเป็นตัวเล็ก ใน script ชื่อเป็น dynDNS แต่เวลาที่คุณเรียกใช้ ใน Scheduler จะเป็น dynDnsครับ ลองเปลี่ยนดูก่อน จากเดิม /systen script run dynDns เปลี่ยนเป็น /systen script run dynDNS ครับ
2. ถ้าจะดู IP Wan ให้เข้าไปที่เมนู IP เลือก Address ครับ จะได้ไม่ต้องโทรไปขอกับทาง TOT
3. ให้ดู Log ครับ ว่าขึ้นอะไรบ้าง เพราะ scritp ใน webboard ของคุณยอดใช้ได้ปกติครับ
ลองใช้สคริปนี้ดูครับ
(https://www.sysnetcenter.com/board/upload/files/images/n36pnq-wireless-778314.png)
Script
/system script
add name=DynDns policy=\
ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
source=":global ddnsuser \"userDYNDNS\"\r\
\n:global ddnspass \"passDYNDNS\"\r\
\n:global theinterface \"pppoe-out1\"\r\
\n:global ddnshost DYNDNS.dyndns.org\r\
\n:global ipddns [:resolve \$ddnshost];\r\
\n:global ipfresh [ /ip address get [/ip address find interface=\$theinterf\
ace ] address ]\r\
\n:if ([ :typeof \$ipfresh ] = nil ) do={\r\
\n :log info (\"DynDNS: No ip address on \$theinterface .\")\r\
\n} else={\r\
\n :for i from=( [:len \$ipfresh] - 1) to=0 do={ \r\
\n :if ( [:pick \$ipfresh \$i] = \"/\") do={ \r\
\n :set ipfresh [:pick \$ipfresh 0 \$i];\r\
\n } \r\
\n}\r\
\n \r\
\n:if (\$ipddns != \$ipfresh) do={\r\
\n :log info (\"DynDNS: IP-DynDNS = \$ipddns\")\r\
\n :log info (\"DynDNS: IP-Fresh = \$ipfresh\")\r\
\n :log info \"DynDNS: Update IP needed, Sending UPDATE...!\"\r\
\n :global str \"/nic/update\\\?hostname=\$ddnshost&myip=\$ipfresh&wildca\
rd=NOCHG&mx=NOCHG&backmx=NOCHG\"\r\
\n /tool fetch address=members.dyndns.org src-path=\$str mode=http user=\
\$ddnsuser \\\r\
\n password=\$ddnspass dst-path=(\"/DynDNS.\".\$ddnshost)\r\
\n :delay 1\r\
\n :global str [/file find name=\"DynDNS.\$ddnshost\"];\r\
\n /file remove \$str\r\
\n :global ipddns \$ipfresh\r\
\n :log info \"DynDNS: IP updated to \$ipfresh!\"\r\
\n } else={\r\
\n :log info \"DynDNS: dont need changes\";\r\
\n }\r\
\n} "
/system scheduler
add interval=10m name=DynDns on-event=DynDns policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api start-time=\
startup
ขอบคุณมากครับ สำหรับความช่วยเหลือ ตอนนี้ผมลองเปลี่ยนคำว่า DNS ให้เป็นตัวพิมพ์ใหญ่ตามที่คุณ yuttapong คอมเม้นท์มา ต้องรอดูว่าพรุ่งนี้ DNS จะอัพเดทเป็นปกติหรือไม่ ส่วนที่คุณ yuttapong แนะนำให้ไปดู IP WAN ใน Address นั้น พอดีผมรีโมทเข้าไปไม่ได้น่ะครับ แล้วไม่ได้อยู่ที่หน้าระบบด้วย ก็เลยต้องโทรถาม TOT น่ะครับ แหะๆ :P
อย่างไรถ้า สคริปต์ใช้ไม่ได้จริงๆ จะลองสคริปต์ที่คุณ tOn— โพสมานะครับ
ขอบคุณทุกท่านมากๆ ครับ
ป.ล. ผมว่า สคริปต์ ยังไงๆ มันก็ Work แหละครับ แต่มันผิดที่ผมเอง ที่ไม่รู้ไปทำอะไรเข้า ถึงได้ผิดพลาด แล้วไม่ยอมรันทุกๆ หนึ่งนาที
ได้ไหมครับ
ได้แล้วครับ อัพเดททุกๆ วัน ผมสังเกตมาหลายวันแล้ว เป็นไปตามที่คุณ yuttapong บอกไว้เป๊ะเลยครับ ใน Schedule ตัวอักษรเล็ก-ใหญ่มีผล ผมทำผิด ก็เลยไม่มีการเช็คอัพเดท
ขอบคุณมากๆ ครับ :)