Man Linux: Main Page and Category List


       ddns3 - remote update client


       ddns3 --user user --pass password [ options ] command ...


       ddns3  updates  IP-Handles  on  the remote update server.  This
       allows remote automated updates rather than using  the  website  via  a


       --user user
              Specifies the username to authenticate with.

       --pass password
              Specifies the password to authenticate with.

       --host hostname
              Override the default server hostname to connect to.  The default
              server hostname is

       --port portnumber
              Override the default TCP port to connect to.   The  default  TCP
              port for the ddns3 protocol is 2164

       --auth authtype
              Specify  what  type  of  authentication  protocol  to  use.  The
              available types are: plaintext, crypt, md5,  ddns,  and  strong.
              The  default  type is ddns which is secure in the sense that the
              username is sent in cleartext, but the password is  sent  hashed
              in such a manner as to defeat replay attacks by utilising a salt
              sent from the server.


       list   List all IP-Handles and their current values  for  the  account.
              You  may  do  this  multiple  times, for example it is perfectly
              legal (and perhaps even useful) to do a list, followed by a set,
              and then another list to observe the change.

       set handle-name ip-value
              Set  an  IP-Handle  named  handle-name to the IP value ip-value.
              Similar to list you can specify as many such operations  on  the
              command  line as you wish and they will be executed in the order

       guess handle-name ip-source
              Set the IP-Handle named handle-name to the IP value derived from
              IP  seen by the ip-source end of the update connection.  The ip-
              source is specified as either remote or local.   Again  you  may
              specify  multiple  guess  commands  on the command line and they
              will be executed in order.

              Using the local option saves you from having to specify  the  IP
              on the command line.  Local guessing usually gets the IP correct
              as it takes the local address of the socket  making  the  update
              connection.   With  conventional  routing  arrangements  this is
              likely to be the IP you want.

              However the remote option sets the IP-Handle to the IP that  the
              server  sees  the  connection as originating from.  This is most
              useful if you are running the client from behind a  NAT  gateway
              which  itself  is incapable of running the client.  In this case
              the IP of the NAT gateway is  used,  rather  than  the  probably
              martian IP of the host the client is actually executing on.


       Useful  error messages are produced on stderr, all other runtime output
       goes to stdout.

       On runtime exception the return value of the process may be  useful  in

              The  usage  message was generated by running the command with no
              The argument parser didn’t like the command line.
              A connection could not be established with the update server.
              Authentication failed.
              Network errors  closing  the  connection  (these  can  often  be
              Some  kind  of  internal  logic  error  in  the  process, like a
              malloc/free failure.

       The process returns a positive count of the number of commands executed
       on the server that generated an error, or zero on error free completion
       of all commands.


       The authentication details should be read from a file  to  avoid  their
       visibility in the process list. There should be support for other ddns3
       protocol primitives like MOTD and  HELP  for  completeness.   The  java
       implementation   jddns3   does   this,  and  is  largely  command  line
       equivalent.  Short network writes are unchecked in at least one  place.


       Alan Yates <>


       $Id: ddns3.1,v 1.2 2003/03/20 05:21:59 alany Exp $


                         $Date: 2003/03/20 05:21:59 $                 DDNS3(1)