检测客户端连接到哪个端口

时间:2012-01-31 20:40:29

标签: python twisted

我有以下代码,我想检测哪个端口客户端连接到工厂。我怎样才能做到这一点?

from twisted.internet import reactor
conn = txredisapi.lazyRedisConnectionPool(reconnect = True)
factory = STSFactory(conn)
factory.clients = []

print "Server started"
reactor.listenTCP(11000,factory)
reactor.listenTCP(11001,factory)
reactor.listenTCP(11002,factory)
reactor.run()

1 个答案:

答案 0 :(得分:3)

可以使用传输的getHostgetPeer方法检索TCP连接的两个地址,客户端地址和服务器地址。 “主机”地址是连接本地端的地址。 “对等”地址是连接另一端的地址。在服务器上,主机地址也是接受连接的端口的地址。

You can read about transport methods in the Twisted API documentation.

例如:

class SomeProtocol(Protocol):
    def connectionMade(self):
        print 'Connection made to', self.transport.getHost(),
        print 'from', self.transport.getPeer()