我知道我们可以在连接建立后获取客户端(主机)IP,因为此时我们将拥有传输属性:
self.transport.getPeer()
但是当Twisted TCP服务器失去与客户端的连接时,如何获取客户端的IP地址呢?即在客户端断开连接后。
现在已经有点晚了。我建议您在拥有这些信息时保存它。例如:
class YourProtocol(protocol.Protocol):
def connectionMade(self):
self._peer = self.transport.getPeer()
def connectionLost(self):
print 'Lost connection from', self._peer
虽然这个问题已经有了答案,但我想快速地添加我的答案,以便将来不会忘记...正如我们所知道的,Twisted的文档...嗯,有点复杂...
def connectionLost(self):
ip, port = self.transport.client
print ip
print port
print vars(self.transport)
并在输出/控制台中查看客户端对象,可以使用经典的PHP调试技巧。