The Ident Protocol is designed to work as a server
daemon, on a
user's computer, where it receives requests to a specified
TCP port, generally 113. In the query, a client specifies a pair of
TCP ports (a local and a remote port), encoded as
ASCII decimals and separated by a comma (,). The server then sends a response that identifies the username of the user who runs the program that uses the specified pair of TCP ports, or specifies an error. Suppose host A wants to know the name of the user who is connecting to its TCP port 23 (
Telnet) from the client's (host B) port 6191. Host A would then open a connection to the ident service on host B, and issue the following query: 6191, 23 As TCP connections generally use one unique local port (6191 in this case), host B can unambiguously identify the program that has initiated the specified connection to host A's port 23, should it exist. Host B would then issue a response, identifying the user ("stjohns" in this example) who owns the program that initiated this connection and the name of its local
operating system: 6193, 23 : USERID : UNIX : stjohns But if it would turn out that no such connection exists on host B, it would instead issue an error response: 6195, 23 : ERROR : NO-USER All ident messages should be delimited by an
end of line sequence consisting of the carriage return and linefeed characters (CR+LF). ==Usefulness of ident==