it is a pretty easy script to create the A record... updating an existing might take a different form:<br>
<br>
<pre>#!/usr/bin/perl -w<br> <br> use Net::DNS;<br> use strict;<br> <br> # Create the update packet.<br> my $update = Net::DNS::Update-&gt;new('<a href="http://ilesansfil.org">ilesansfil.org</a>');<br> <br> # Prerequisite is that no A records exist for the name.
<br> $update-&gt;push(pre =&gt; nxrrset('<a href="http://boohdabar.ilesansfil.org">boohdabar.ilesansfil.org</a>. A'));<br> <br> # Add the A records for the name.<br> $update-&gt;push(update =&gt; rr_add('<a href="http://boohdabar.ilesansfil.org">
boohdabar.ilesansfil.org</a>. 3600 A <a href="http://67.70.2.26">67.70.2.26</a>'));<br><br> <br> # Send the update to the zone's primary master.<br> my $res = Net::DNS::Resolver-&gt;new;<br> $res-&gt;nameservers('<a href="http://DNS1.SMARTNAMESERVERS.COM">
DNS1.SMARTNAMESERVERS.COM</a>');<br> <br> my $reply = $res-&gt;send($update);<br> <br> # Did it work?<br> if ($reply) {<br>     if ($reply-&gt;header-&gt;rcode eq 'NOERROR') {<br>         print &quot;Update succeeded\n&quot;;
<br>     } else {<br>         print 'Update failed: ', $reply-&gt;header-&gt;rcode, &quot;\n&quot;;<br>     }<br> } else {<br>     print 'Update failed: ', $res-&gt;errorstring, &quot;\n&quot;;<br> }</pre>
<br><br><div><span class="gmail_quote">On 3/8/06, <b class="gmail_sendername">Rein Petersen</b> &lt;<a href="mailto:rein.petersen@gmail.com">rein.petersen@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style="direction: ltr;">Sorry, the appropriate library is :&nbsp; Net::DNS::Update<br>
<br>
<a href="http://search.cpan.org/%7Eolaf/Net-DNS-0.57/lib/Net/DNS/Update.pm" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://search.cpan.org/~olaf/Net-DNS-0.57/lib/Net/DNS/Update.pm</a><br>
<br>
It allows you to do the dynamic updates of a dns server.<br>
<br>
Sorry for the confusion... Rein</div><div style="direction: ltr;"><span class="e" id="q_109db0ab8f2eeb19_1"><br><br><div><span class="gmail_quote">On 3/8/06, <b class="gmail_sendername">Rein Petersen</b> &lt;<a href="mailto:rein.petersen@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
rein.petersen@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style="direction: ltr;">Hey <span class="gmail_quote"><span class="gmail_sendername">François,<br>
<br>
That'll work for HTTP for sure - or whatever ports you have Apache
answering - it would definately let webcams be easily accessible
remotely (with the appropriate port-forward on the router). But other
services (say PCAnywhere or something like that) would still rely on
DNS to map a domain name to an ip address.<br>
<br>
A further elaboration of Mina's idea to utilize your existing DDNS
service would be to implement a trigger on the table that captures the
ip address of the heartbeat and, on change, call a perl script that
implements the Net::DNS perl module :<br>
<br>
</span></span><span class="gmail_quote"><span class="gmail_sendername"><a href="http://search.cpan.org/%7Eolaf/Net-DNS-0.57/lib/Net/DNS.pm" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://search.cpan.org/~olaf/Net-DNS-0.57/lib/Net/DNS.pm
</a><br>
<br>
The Net::DNS library allows you to craft the appropriate DNS request to
add/update a dynamic host. Please excuse my linux ignorance, but I
would assume you'd want to spawn a new thread/process so your perl
ddns-updating script doesn't hold up the database update that caused
the trigger while it is updating a remote dns server - I know there is
some complication with multithreading and linux but I'm totally novice
when it comes to linux.<br>
<br>
Of course this is all just theoretical but, I'd be willing and
interested in writing the perl script that updates DDNS if the ISF
folks thought it was a worthy venture. Regardless, it's fun to talk
about it.<br>
<br>
Rein<br>
</span><b class="gmail_sendername"><span style="font-weight: bold;"><span style="font-weight: bold;"><br>
<br>
</span></span></b></span></div><div style="direction: ltr;"><span><br><div><span class="gmail_quote">On 3/8/06, <b class="gmail_sendername">François Proulx</b> &lt;<a href="mailto:fproulx@edito.qc.ca" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

fproulx@edito.qc.ca</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style="direction: ltr;">Here is a potential solution for managing dynamic DNS entierely from the Wifidog back-end.<div><br></div><div>Create an Apache name-based VirtualHost with the ServerAlias parameter set to something like
</div><div>ServerAlias *.hotspots.ilesansfil.org</div><div><br></div><div>See Apache doc here :</div><div><a href="http://httpd.apache.org/docs/1.3/mod/core.html#serveralias" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">


http://httpd.apache.org/docs/1.3/mod/core.html#serveralias</a></div><div><br></div><div>So,
there would be a proxy PHP script that would be called and look if the
first part of the URL matches the name of a hotspot in the database,
maybe even do soundex or metaphone searches then redirect to the right
portal page .... So that's pretty simple to do and we can specify the
alias in the Wifidog admin back-end</div><div><br></div><div><br><div><div>On 8-Mar-2006, at 11:19 , Max Horváth wrote:</div><br><blockquote type="cite">Well, the question is - can you provide a tutorial on how to run our own DDNS server?
<div><br></div><div>Cheers, Max!</div><div><br><div><div>Am 08.03.2006 um 16:24 schrieb Mina Naguib:</div><br><blockquote type="cite"><br><div><div>On 8-Mar-06, at 8:41 AM, Rein Petersen wrote:</div><br><blockquote type="cite">


Hi Max, Hi Benjamin,<br> <br>
Benjamin's idea of using a client to update an existing dynamic dns
service is probably the easiest. You could delegate a subdomain of <a href="http://ilesansfil.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">ilesansfil.org</a> (how about &quot;<a href="http://venues.ilesansfil.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">


venues.ilesansfil.org</a>&quot;)
to a remote dnydns service so your existing dns is not affected, then
have a trigger on the db that uses the client to update the remote
dyndns server on change of an ip address.<br></blockquote><div><br></div>The DNS server handling <a href="http://ilesansfil.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">ilesansfil.org</a> already supports dynamic DNS entry updating ;-) No need for anything fancy to be done.
</div><div><br><blockquote type="cite"> <br>
I had imagined something a little more elaborate - delegating a
subdomain to your auth server and running a perl sockets service that
answers only host lookups on port 53. Bothering with the entire BIND
DNS spec would be unecessary (don't need reverse or MX queries). DNS
speaks binary on the wire so it is still a little elaborate but not
impossible (I've worked on a resolver for a mail server called Lumisoft
Mail).<br></blockquote><div><br></div>Entirely doable (done it before as well), but a bit overkill :-)</div><div><br><blockquote type="cite"> <br> I think Benjamin's plan may be easier to implement.<br> <br> Rein<br><br>


<div><span class="gmail_quote">On 3/8/06, <b class="gmail_sendername">Benjamin Crulli</b> &lt;<a href="mailto:lostocean@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">lostocean@gmail.com
</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> These are the three dyndns GNU/Linux softwares i know about.<br>&lt;a href=&quot;
<a href="http://sourceforge.net/project/showfiles.php?group_id=65917" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://sourceforge.net/project/showfiles.php?group_id=65917</a>&quot;&gt;updatedd&lt;/a&gt; 
<br>&lt;a href=&quot;<a href="http://www.funtaff.com/software/addns.pl" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.funtaff.com/software/addns.pl</a>&quot;&gt;Addns.pl&lt;/a&gt;<br>&lt;a href=&quot;
<a href="http://ipcheck.sourceforge.net/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://ipcheck.sourceforge.net/ </a>&quot;&gt;ipcheck.py&lt;/a&gt;<br><br>On 3/8/06, Max Horváth &lt;<a href="mailto:max.horvath@maxspot.de" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">


max.horvath@maxspot.de</a>&gt; wrote:<br>&gt; This feature would be nice ... but I think we won't be able to do it by just <br>&gt; extending the auth server.<br>&gt;<br>&gt; In fact I still don't know which software exists for linux to provide a
<br>&gt; DynDNS service :( ...<br>&gt;<br>&gt; Did you already do some research?<br>&gt;<br>&gt; Cheers, Max! <br>&gt;<br>&gt;<br>&gt; Am 08.03.2006 um 05:11 schrieb Rein Petersen:<br>&gt;<br>&gt; Hi All,<br>&gt;<br>&gt;&nbsp;&nbsp;Considering that Wifidog clients heartbeat frequently to the auth server, I
<br>&gt; was wondering if anyone had considered rolling Dynamic DNS service into <br>&gt; Wifidog auth server.<br>&gt;<br>&gt;&nbsp;&nbsp;Then you could resolve dynamic ip addresses to names like<br>&gt; <a href="http://boodhabar.ilesansfil.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">


boodhabar.ilesansfil.org</a><br>&gt;<br>&gt;&nbsp;&nbsp;This might be helpful for venues that want to run their own services or <br>&gt; have a webcam installed.<br>&gt;<br>&gt;&nbsp;&nbsp;Just a crazy idea but I think it would be cool.<br>

&gt;
<br>&gt;&nbsp;&nbsp;Rein<br>&gt;<br>&gt; _______________________________________________<br>&gt; WiFiDog mailing list<br>&gt; <a href="mailto:WiFiDog@listes.ilesansfil.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">


WiFiDog@listes.ilesansfil.org</a><br>&gt; <a href="http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog 
</a><br>&gt;<br>&gt; _______________________________________________<br>&gt; WiFiDog mailing list<br>&gt; <a href="mailto:WiFiDog@listes.ilesansfil.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">


WiFiDog@listes.ilesansfil.org</a><br>&gt; <a href="http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog
</a><br>&gt;<br>&gt;<br>&gt;<br><br><br>--<br>Ben Crulli<br>_______________________________________________<br>WiFiDog mailing list<br><a href="mailto:WiFiDog@listes.ilesansfil.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">


 WiFiDog@listes.ilesansfil.org</a><br><a href="http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog
</a><br></blockquote></div><br><br clear="all"><br> -- <br>Rein Petersen MCP MCP+I MCSE MCDBA MCAD<br>Software Engineer<div style="margin: 0px;">_______________________________________________</div><div style="margin: 0px;">


WiFiDog mailing list</div><div style="margin: 0px;"><a href="mailto:WiFiDog@listes.ilesansfil.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">WiFiDog@listes.ilesansfil.org</a></div><div style="margin: 0px;">


<a href="http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog</a></div> </blockquote>


</div><br><div style="margin: 0px;">_______________________________________________</div><div style="margin: 0px;">WiFiDog mailing list</div><div style="margin: 0px;"><a href="mailto:WiFiDog@listes.ilesansfil.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">


WiFiDog@listes.ilesansfil.org</a></div><div style="margin: 0px;"><a href="http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog
</a></div> </blockquote></div><br></div><div style="margin: 0px;">_______________________________________________</div><div style="margin: 0px;">WiFiDog mailing list</div><div style="margin: 0px;"><a href="mailto:WiFiDog@listes.ilesansfil.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">


WiFiDog@listes.ilesansfil.org</a></div><div style="margin: 0px;"><a href="http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog
</a></div> </blockquote></div><br></div>
</div><br>_______________________________________________<br>WiFiDog mailing list<br><a href="mailto:WiFiDog@listes.ilesansfil.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">WiFiDog@listes.ilesansfil.org
</a>
<br><a href="http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog</a><br><br>

<br clear="all">
</blockquote></div><br><br clear="all"><br>-- <br>Rein Petersen MCP MCP+I MCSE MCDBA MCAD<br>Software Engineer

</span></div></blockquote></div><br><br clear="all"><br>-- <br>Rein Petersen MCP MCP+I MCSE MCDBA MCAD<br>Software Engineer

</span></div></blockquote></div><br><br clear="all"><br>-- <br>Rein Petersen MCP MCP+I MCSE MCDBA MCAD<br>Software Engineer