Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the client IP address after got connection lost in twisted

Tags:

python

ip

twisted

I know we can get the client (host) IP after connection has been established because at that time we will have transport attribute:

self.transport.getPeer()

but how do I get the IP address of the client in twisted TCP server when it lost connection to the server, as in after it got disconnected.

like image 218
neotam Avatar asked Dec 12 '22 18:12

neotam


2 Answers

Its a little late for that. I suggest you save this information when you have it. For example:

class YourProtocol(protocol.Protocol):

    def connectionMade(self):
        self._peer = self.transport.getPeer()

    def connectionLost(self):
        print 'Lost connection from', self._peer
like image 118
Marek Kowalski Avatar answered Jan 17 '23 14:01

Marek Kowalski


While this has already been answered, i thought i would quickly add mine so i do not forget this in the future... As we know, the docs for Twisted are .. well twisted...

def connectionLost(self):
    ip, port = self.transport.client
    print ip
    print port

By using the above, you can then simply match the ip/port against what ever database or means you have of keeping track of clients.

I ended up finding by using print vars(self.transport) and seeing the client object in the output/console... using classic php debugging here

like image 43
Angry 84 Avatar answered Jan 17 '23 16:01

Angry 84