hidentd - a simple ident server


hidentd [-p username] [-u username] [-r] [-s] [-v] [-h]


hidentd is a simple ident (RFC1413) server. It provides remote servers with names of local users connecting to them.


There are no mandatory options. When executed without any options, hidentd will respond with real usernames and log via syslog.

-u username
Respond with username when real owner of the connection cannot be found. This is useful for masqueraded/NAT connections.

-p username
Respond all queries with username.

Respond all queries with a random string. You can find a corresponding username in hidentd's logfile. Note that this mode gives no information useful to the peer, but allows you to identify a particular user if needed - i.e when handling abuse complaints.

Allow users to specify their own ident response in ~/.ident. If this option is used, for every connection hidentd will find its owner and read .ident in his home directorory. If ~/.ident exists and is a regular, word-readable file, its contents will be used as a response. Note that this response overrides those specified by -p/-r.

Log to standard error (stderr) instead of syslog

Be verbose - log every incoming query

Display a short help message


hidentd may be invoked from inetd, xinetd, or tcpserver. See doc/README.* for usage examples. On some operating systems (currently FreeBSD), hidentd needs to be run as root. If your operating system allows hidentd to operate without root privileges, hidentd will refuse to run if started it as root.


Starting from version 0.4 hidentd uses a new, unified log format. For every succesful query it prints a line like this:

ok ``jsmith ''6A50F92D``

The first token is ``ok'' if no error occurred. Next two IP:PORT pairs are addresses of local and remote endpoints of a queried connection. Here, asked about a connection between and Fourth field is a real name of a user that owns this connection. Fifth field is a name returned to the peer, which may be different. In this example -r was given in hidentd command-line, so it returned a random string.


Marek Gutkowski <e_mail_hidden>.