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

前端 未结 2 1681
梦毁少年i
梦毁少年i 2021-01-03 08:21

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()
         


        
相关标签:
2条回答
  • 2021-01-03 08:59

    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
    
    0 讨论(0)
  • 2021-01-03 09:15

    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

    0 讨论(0)
提交回复
热议问题