接続が確立された後、クライアント(ホスト)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デバッグを使用します