4

接続が確立された後、クライアント(ホスト)IPを取得できることはわかっています。これは、その時点でトランスポート属性があるためです。

self.transport.getPeer()

しかし、サーバーへの接続が失われたとき、たとえば切断された後のように、ツイストTCPサーバーでクライアントのIPアドレスを取得するにはどうすればよいですか。

4

2 に答える 2

11

そのために少し遅れています。この情報を入手したら、保存することをお勧めします。例えば:

class YourProtocol(protocol.Protocol):

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

    def connectionLost(self):
        print 'Lost connection from', self._peer
于 2013-01-11T12:57:51.453 に答える
2

これはすでに答えられていますが、私はすぐに私のものを追加すると思ったので、将来これを忘れないでください...私たちが知っているように、Twistedのドキュメントは..よくねじれています...

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

上記を使用することで、ip / portをデータベースと照合したり、クライアントを追跡したりすることができます。

print vars(self.transport)私は出力/コンソールでクライアントオブジェクトを使用して表示することで見つけました...ここで古典的なphpデバッグを使用します

于 2015-09-10T23:53:47.830 に答える