This is an implemention in linux shell script of "The Original Direct TCP Connection Protocol" part of
GnuDIP Client-Server Update Protocol
to "request that the server determine the IP address it sees at the client end of the connection".
To use this manual you need to register your domain name with a GNUdip compatible dynamic DNS provider like dynu.com.
To update the IP address in DNS execute this command:
nc gnudip.dynu.com 3495 -e gnudip.sh
The nc command is part of busybox in an OpenWrt environment but it may work with any
netcat implementation, although the syntax may vary.
In gnudip.sh is where the magic happens. After connecting the server sends the
"salt" string. This is received by the read command and stored in the $salt variable. The password is
MD5 coded by the md5sum command, also part of busybox.
The trailing '-' sign meaning standard input is removed by: sed 's, .*,,'
The salt value is appended and the resulting string is MD5 coded again. The trailing '-' sign is removed
again as described in the previous paragraph.
The update message character string is now completed like this:
This string is transmitted to the server with a simple echo command.
The server then responds with a '0' if everything was OK. This is received by the read command and stored
in the $resp variable to be evaluated.