Hi Maarten,
even though I have to agree with Michael Soulier, that there are no additional benefits by using a hardware router, here is a solution that should work for you.
replace the line in /sbin/e-smith/dynamic-dns/dyndns.org
that reads
IPADDR=$1
with
IPADDR=$(wget -q -O -
http://checkip.dyndns.org/|sed -e 's/[^0-9.]//g')
and your update should be fine.
You should be aware of three things though.
1st , this solution should only be used if you cannot obtain the routers IP-Address by any other means, like a DynDNS client that can query the router. ddclient is a good one.
2nd, do not use this method more often than every 10 minutes, or your account may be blocked. See the DynDNS FAQ.
3rd, there is no guarantee that the string returned by
http://checkip.dyndns.org will have the same format forever. Even though the above sed command discards everything but digits and dots, if DynDNS.org changes the format, the regular expression might require adjustment.
It still does'nt do an automated update if your external IP changes, since your SME server is not aware of the change. Contact me offlist if you are interested in a solution to achieve this.