我知道我们可以在建立连接后获取客户端(主机)IP,因为那时我们将具有传输属性:
self.transport.getPeer()
但是当它失去与服务器的连接时,我如何在扭曲的 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
通过使用上述内容,您可以简单地将 ip/port 与任何数据库或您拥有的跟踪客户端的方式进行匹配。
我最终通过print vars(self.transport)
在输出/控制台中使用和查看客户端对象来找到...在这里使用经典的 php 调试