{"id":26,"date":"2008-06-13T02:26:45","date_gmt":"2008-06-12T18:26:45","guid":{"rendered":"http:\/\/blog.lolyco.com\/sean\/?p=26"},"modified":"2008-06-15T09:45:00","modified_gmt":"2008-06-15T01:45:00","slug":"zoneeditcom-dynamic-dns-update-script","status":"publish","type":"post","link":"https:\/\/blog.lolyco.com\/sean\/2008\/06\/13\/zoneeditcom-dynamic-dns-update-script\/","title":{"rendered":"Zoneedit.com Dynamic DNS update script"},"content":{"rendered":"<p>We use both <a title=\"DynDNS Dynamic DNS\" href=\"http:\/\/www.dyndns.com\/\" target=\"_blank\">DynDNS<\/a> and <a title=\"ZoneEdit.com Dynamic DNS\" href=\"http:\/\/www.zoneedit.com\/\" target=\"_blank\">ZoneEdit<\/a> for our <strong>Dynamic DNS<\/strong>. We use inadyn for our Dynamic DNS Custom Zones, but since inadyn uses DynDNS&#8217;s checkip service, it <strong>doesn&#8217;t seem fair<\/strong> to use it for our ZoneEdit zones too.<\/p>\n<p><strong>zoneeditscript<\/strong> is freshly written as of 12th June 2008, so maybe there will still be a few bugs! <strong>Installation is simple<\/strong> &#8211; just copy the 2 files to wherever you want them on your system (we have them in \/etc). Configuration is fairly <strong>straightforward<\/strong> &#8211; see the notes in the files <a title=\"ZoneEditScript\" href=\"http:\/\/www.lolyco.com\/contributions\/zoneeditscript\">zoneeditscript<\/a> and <a title=\"ZoneEdit.hosts\" href=\"http:\/\/www.lolyco.com\/contributions\/zoneedit.hosts\">zoneedit.hosts<\/a>:<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2008\/06\/zoneeditscript.jpeg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-27 aligncenter\" title=\"zoneeditscript\" src=\"http:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2008\/06\/zoneeditscript.jpeg\" alt=\"The shell script zoneeditscript\" width=\"300\" height=\"180\" \/><\/a><\/p>\n<p>The script checks a router&#8217;s <strong>WAN<\/strong> IP address by SNMP <strong>or<\/strong> by using <a title=\"WhatIsMyIP.com IP address checker\" href=\"http:\/\/www.whatismyip.org\/\" target=\"_blank\">whatismyip.org<\/a>. It defaults to whatismyip.org, changing it is a matter of moving the comment symbol. <strong>Use SNMP<\/strong> if your router supports it, then your IP-change check only uses LAN traffic, but be warned &#8211; neither of the <strong>cheapo routers<\/strong> I tested it on could cope with <strong>repeated SNMP traffic<\/strong>! There&#8217;s plenty of output from the script, both to stdout (we redirect it to a file, for stats) and to the <strong>system log<\/strong> for actual IP changes and error conditions.<\/p>\n<p>If you are hosting <strong>many domains on a Dynamic IP address<\/strong>, you can list them all in zoneedit.hosts:<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2008\/06\/zoneedithosts.jpeg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-28 aligncenter\" title=\"zoneedithosts\" src=\"http:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2008\/06\/zoneedithosts.jpeg\" alt=\"zoneedit.hosts, the domain list for zoneeditscript\" width=\"280\" height=\"145\" \/><\/a><\/p>\n<p>Other features&#8230; not many. After updating the zoneedit.com zones, it goes to <strong>sleep for an extra long time<\/strong>. This is an effort to reduce the effect of any error in the script that causes repeated queries to zoneedit.com. If you&#8217;re in the <strong>bizarre situation<\/strong> of needing to make repeated updates of your WAN IP address (maybe you&#8217;ve got intermittent connection \/ testing your router&#8217;s power switch?), you can <strong>killall -s SIGHUP zoneeditscript<\/strong> and the update should run immediately. If you&#8217;re <strong>adding sites<\/strong> to the zoneedit.hosts file (did I say it could cope with lots of domains, not just one?) you can also force an update this way.<\/p>\n<p>What else do you need to know? No licence, none needed. If you&#8217;re home hosting, I hope it saves you some time. Maybe our paths will cross <strong>one day<\/strong> and you can buy me a <strong>coffee<\/strong>. I like <strong>Bakewell tarts<\/strong>.<\/p>\n<p>Happy hosting!<\/p>\n<p>Edit: My <strong>el-cheapo<\/strong> Caremo router has become unresponsive, possibly as a result of all the SNMP queries. I&#8217;ve emailed telogy.com (now TI?) to ask why. It was still <strong>routing effectively<\/strong>, but not responding to SNMP, telnet, ssh! And further edit: I plugged in an unreliable D-Link G604T the Caremo replaced (I have terrible taste in routers), and got no further than 90 queries before it too <strong>stopped responding<\/strong>. They both come back after a &#8216;rest&#8217;, so perhaps the &#8216;query as fast as you like&#8217; needs to <strong>take into account<\/strong> how awful your router is under load.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We use both DynDNS and ZoneEdit for our Dynamic DNS. We use inadyn for our Dynamic DNS Custom Zones, but since inadyn uses DynDNS&#8217;s checkip service, it doesn&#8217;t seem fair to use it for our ZoneEdit zones too. zoneeditscript is freshly written as of 12th June 2008, so maybe there will still be a few [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,20,3],"tags":[28,18,105],"class_list":["post-26","post","type-post","status-publish","format-standard","hentry","category-broadband","category-fixed","category-software","tag-dns","tag-server","tag-software"],"_links":{"self":[{"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/posts\/26","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/comments?post=26"}],"version-history":[{"count":0,"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/posts\/26\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/media?parent=26"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/categories?post=26"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/tags?post=26"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}