class documentation

The Identification Protocol (a.k.a., "ident", a.k.a., "the Ident Protocol") provides a means to determine the identity of a user of a particular TCP connection. Given a TCP port number pair, it returns a character string which identifies the owner of that connection on the server's system.

Server authors should subclass this class and override the lookup method. The default implementation returns an UNKNOWN-ERROR response for every query.

Method invalidQuery Undocumented
Method lineReceived Override this for when each line is received.
Method lookup Lookup user information about the specified address pair.
Method validQuery Called when a valid query is received to look up and deliver the response.
Method _cbLookup Undocumented
Method _ebLookup Undocumented

Inherited from LineOnlyReceiver:

Method dataReceived Translates bytes into lines, and calls lineReceived.
Method lineLengthExceeded Called when the maximum line length has been reached. Override if it needs to be dealt with in some special way.
Method sendLine Sends a line to the other end of the connection.
Constant MAX_LENGTH The maximum length of a line to allow (If a sent line is longer than this, the connection is dropped). Default is 16384.
Class Variable delimiter The line-ending delimiter to use. By default this is b'\r\n'.
Instance Variable _buffer Undocumented

Inherited from Protocol (via LineOnlyReceiver):

Method connectionLost Called when the connection is shut down.
Method logPrefix Return a prefix matching the class name, to identify log messages related to this protocol instance.
Class Variable factory Undocumented

Inherited from BaseProtocol (via LineOnlyReceiver, Protocol):

Method connectionMade Called when a connection is made.
Method makeConnection Make a connection to a transport and a server.
Instance Variable connected Undocumented
Instance Variable transport Undocumented
def invalidQuery(self): (source)


def lineReceived(self, line): (source)

Override this for when each line is received.

line:bytesThe line which was received with the delimiter removed.
def lookup(self, serverAddress, clientAddress): (source)

Lookup user information about the specified address pair.

Return value should be a two-tuple of system name and username. Acceptable values for the system name may be found online at:


This method may also raise any IdentError subclass (or IdentError itself) to indicate user information will not be provided for the given query.

A Deferred may also be returned.

serverAddressA two-tuple representing the server endpoint of the address being queried. The first element is a string holding a dotted-quad IP address. The second element is an integer representing the port.
clientAddressLike serverAddress, but represents the client endpoint of the address being queried.
def validQuery(self, portOnServer, portOnClient): (source)

Called when a valid query is received to look up and deliver the response.

portOnServerThe server port from the query.
portOnClientThe client port from the query.
def _cbLookup(self, result, sport, cport): (source)


def _ebLookup(self, failure, sport, cport): (source)