INADYN - Simple DYNAMIC DNS client.
Version 1.96.2, 12.March.2007
INADYN is a dynamic DNS client. That is, it maintains the IP address
of a host name. It
periodically checks whether the IP address stored by the DNS server is
the real current address
of the machine that is running INADYN.
- IF you are planning to let inadyn run as a service. For installation
you need Administrator rights
you need to launch the utility batch: install_inadyn_service.bat
from the same directory where inadyn.exe
This will allow a standard console application like inadyn to run as a service. The
programs intsrv.exe, srvany.exe
are standard programs that can be also found on Windows 2000 res
re-distributing the above mentioned programs seems to be illegal, they
provided in the inadyn package.
These programs have to be downloaded (if don't already have them) and
copied in the inadyn/bin/win32 directory. After a bit of
googling I found some links where one can download them:
the whole Windows Server 2003 Resource Kit Tools from Microsoft or
the following alternate sites
- Edit the registry file with the correct
name for your service (e.g. 'configure_inadyn_service_dyndns.reg') in order to pass your
password, aliases, and other params to inadyn. After you have finished
double click on the reg
- The correct path to inadyn binary has to be entered in the
- The log file is located in %System%\system32 by default
- Beware of the double backslashes '\\' and the correct paths!
After you have finished double click on the reg file.
- Go to ControlPanel/AdministrativeTools/Services/inadyn and START
the service. Also make
sure that the startup mode is 'automatic'.
For Macintosh (thanks to Rob.S)
installation necessary. The inadyn executable found in bin/linux/inadyn is self contained
and can be launched at any time
- Put the binary somewhere in path (e.g. ~/bin),
Start it with the following AppleScript saved as an Application and
System Preferences -> Accounts -> Login Items:
do shell script "~/bin/inadyn -a HOST.dyndns.org -u USER -p
Alternatively, one can put it in the system startup scripts.
For other operating systems:
- Recompile and set
the TARGET_ARCH to your own:
make TARGET_ARCH=myOS clean all
- This will produce an executable in the bin/myOS directory.
(See command line options below in order to
build your own command line)
1. Update every minute, in
console mode, for a dyndns.org system.
inadyn --username test --password test --update_period 60000 --alias
test.homeip.net --alias my.second.domain
2. Update every minute, in demon mode
(background task), with log file, of an dyndns.org address:
inadyn --background -u test -p test --update_period 60000 --alias
inarcis.homeip.net --alias my.second.domain --log_file
3. Update every minute, in daemon
mode, with configuration read from file of an address from
Config file (can be placed anywhere, but in linux is convenient in
default location: /etc/inadyn.conf
Content of cfg file:
--change_persona 10012 #to change to another user id after init. (less
rights, more secure)
Launching of inadyn does not need any params. It looks for
4. Freedns update in console
inadyn --update_period 60000 --alias test.homeip.net,hash_for_host1 -a
my.second.domain,hash2 --dyndns_system firstname.lastname@example.org
'hash' is extracted from the grab url batch
file that is downloaded
(See also special note)
5. DynDns update of a custom DNS
inadyn --dyndns_system email@example.com -u USER -p PASS -a HOST
6. no-ip.com update
inadyn --dyndns_system firstname.lastname@example.org -u USER-p PASS -a HOST
Inadyn can read the very same options which
can be present in the
command line from a configuration file. This feature allows the user to
write the options only once, and avoids frequent retyping.
Default configuration file is /etc/inadyn.conf under Unix
The location of the config file can be given ot inadyn via --input_file
The format :
- '#' is a comment sign.
- the long options (those with '--' in front) can also be placed at the
beginning of the line without
#Some comment about inadyn cfg file
--username test --password test --update_period 60000 --alias
test.homeip.net --alias my.second.domain
--username test #user
update_period 60000 #some other param without '--'
Inadyn prints some message when the ip is updated. If no update is
needed by default it prints a '.' every time when it performs a name
check. So typically you will see a lot of dots in the log file. (only
if verbose level is greater than 0).
When the connection goes down it is possible that inadyn displays some
errors. But they should
be followed by 'OK' messages after the connection is up again.
Special notes for freedns.afraid.org
They prefer to get as parameter a single hashed (base64 encoded) value
This saves some computing resources apparently. The hash cannot be
computed by inadyn because
it involve the database index of your username in freedns database
which is not known.
The simplest solution seems to be the copy-paste action from the
graburl batch file offered on
Example: The batch file looks like this:
The user has to copy and paste the hash value after the '?' until the
end of line.
The hash will be used as additional param in --alias option. (see
typical usage above)
Command line options
They are automatically printed if inadyn gets wrong parameters or if
--help option is
your membername/ hash
'-u': your membername / hash
your password. Optional.
'-p': your password
alias host name. this option
can appear multiple
times. (for each domain that has the same IP)
'-a': alias host name. this option can appear multiple times.
input file name that
inadyn command options (adds to those already present in the cmd line).
The default configuration file name is '/etc/inadyn.conf'. It is only
used if inadyn is called without any command line options. This allows
inadyn to be called without any arguments. The format is as expected
for a **NIX config file. See below for details.
url': The client
IP is detected by calling 'url' from this 'ip_server_name:port'.
Defaults to checkip.dyndns.org:80 /.
The server that receives the update DNS
If no proxy is wanted, then it is enough to set the dyndns system. The
default servers will be
full URL relative to DynDNS server root.
[NAME] - optional
DYNDNS service type. SHOULD
be one of the following:
-For dyndns.org DNS system:
email@example.com OR firstname.lastname@example.org.
http proxy server name and
port. Default is none.
-For freedns.afraid.org DNS system: email@example.com .
-For the servcie ofered by zoneedit.com: firstname.lastname@example.org.
- For no-ip.com :
-For generic DNS system:
DEFAULT value is intended for default service at
'--update_period': how often
the IP is checked. The period is in [ms].
Default is about 1 min.
Max is 10 days
often the IP is checked. The period is in
[sec]. Default is about 1
min. Max is 10 days
often the IP is updated even if it is not
changed. [in sec]
'--log_file': log file path abd
'--background': runs in
background. Output to syslog or to log
file [if specified].
'--verbose': set dbg level. 0
'--iterations': set the number
of DNS updates. Default is 0, which
'--syslog': explicit set output
to syslog. (e.g. /var/log/messages).
Works on **NIX systems only.
After init changes user ID and group ID
to the provided ones. This allows dropping unneeded [root] privileges
after startup. Works for **NIX only.
Support and Bug reports
Since this is free software the support [for free] is quite thin.
However, the bugs are usually
fixed very fast if they are reported.
No active testing is performed so without user feedback the bugs won't
get discovered and
Ver. 1.96.2 - 12 March 2007
- If the Dynamic DNS server responds with an error Inadyn will abort. This will prevent further retries with wrong dyndns credentials.
- Default port number included in the request, to support the requests via Proxy, to ports different than 80.
- Simplified main inadyn update loop function. (there was no bug there)
Ver. 1.96 - 09 September 2005
- zoneedit.com supported.
- no-ip.com supported.
- support for generic DNS services that
support HTTP updates
- immediate exit in case of
--iterations=1 (not after a sleep period)
- added missing option for specifying
the path in the DNS server
Ver. 1.95 - 20 July 2005
- UNIX signals supported - inadyn will
stop gracefully in case of ALRM, HUP, INT, ...
- new dynamic dns service supported -
www.zoneedit.com - Not tested!
- makefile adjusted for Solaris -
compilable under Solaris.
- support for generic DYNDNS service
that supports update via HTTP with basic authentication
- not yet fully
complete. Not known where might be applicable.
Ver. 1.90 - 24 February 2005
- new option '--change_persona uid:gid'
- inadyn can switch the user after launch. Typical feature for daemons.
- addition to '--ip_server_name'
feature, now it has another parameter: the URL to read from the
given server name.
- reduced some error
- manual pages updated. (thanks to
- typo fixed (--ip_server_name option)
Ver. 1.86 - 30 January 2005
Updated UNIX man pages for inadyn. Even a page for
inadyn.conf! (thanks to Shaul Karl)
Enhancement: - Inadyn doesn't print anything (e.g.
ver. number) anymore when goes to background.
Enhancement: - new config file parser. Accepts
ESCAPE character: '\'.
Bugfix: - Corrected check of the return code from
Ver. 1.85 - 10 January 2005
Config file related enhancements:
- a default location for the config
file in case of no arguments for inadyn
- a more **NIX like format for the
config file. Thanks to Jerome Benoit.
- in case when 'iterations' option is
specified as being '1', inadyn exits immediately after first update,
not after the sleep period as before.
Ver. 1.81 - 23 November 2004
No new features. Just a better integration with
Reviewed usage of syslog and fork to background in 'daemon mode',
thanks to Shaul Karl.
Ver. 1.80 - 16 October 2004
--syslog: output to syslog for
Linux (should work for all **nix systems)
run in background for Linux
(should work for all **nix systems)
Minor compile warnings removed.
Ver. 1.70 - 5 July 2004
custom dns from dyndns option was
not accepted by the cmd line parser. "Copy-paste" error :-( !
New option: (not tested. It was a debug option now
made accessible via cmd line. It should work)
--iterations. Now one can run
inadyn with only one iteration.
Ver. 1.60 - 5 June 2004
On users' request the inadyn can read the options
from file. Ver. 1.5 - 1 May 2004
- Support for dynamic DNS service offered by freedns.afraid.org
- support for http proxy
- GPL Copyright notice added.
Ver. 1.4 - 1 March 2004
- Support for custom DNS and static DNS services offered by dyndns.org.
- support for forced IP update (so the account will not expire even
though the IP never
Ver. 1.35 - 04 february, 2004
- Bugfixes: - It supports AGAIN the multiple aliases for the same IP
- Under Windows the OS signal handler is installed only once no matter
if IP update errors
Ver. 1.34 - 6 Novemeber 2003
- first port *NIX (Linux)
- Linux version running as console app
Ver. 1.2 - June 2003
- port to embedded system pSOS. Runs on the Remote management card.
No DNS support under pSOS -> input params are the IP addresses of
the servers used (DynDNS,
Ver. 1.0 - 20 May 2003 - first stable version.
main features ready:
- DYNDNS client
- works fine behind a NAT router
- runs fine as a service
- has a nice log file
- it is MINE ;)
- port to some other DNS services.
This page was visited so many times: