我知道我們能在客戶端(主機)的IP連接已經在那個時候我們將有運輸屬性,因爲建立後失去客戶端IP地址:如何獲得後得到了連接在扭曲
self.transport.getPeer()
但當它斷開與服務器的連接時,如何在扭曲的TCP服務器上獲取客戶端的IP地址,如同斷開連接之後那樣。
我知道我們能在客戶端(主機)的IP連接已經在那個時候我們將有運輸屬性,因爲建立後失去客戶端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
謝謝,爲你解答。你確定我們不能在連線丟失的時候得到 –
好的,我第一次錯了。其實self.transport.getPeer()調用從connectionLost()回調工作正常。我測試了這個TCP連接。 我也可以從實現中看到,在DatagramProtocol子類的情況下,您不會擁有self.protocol屬性,因此對於UDP。這是你的情況嗎? –
exceptions.TypeError:connectionLost()只需要1個參數(給出2個) –
雖然這已經回答了,我想我會很快加礦,所以我不會在將來忘記了這一點......我們知道,對於扭曲的文檔是..好扭曲。 ..
def connectionLost(self):
ip, port = self.transport.client
print ip
print port
通過使用上面,所以可以只對陣過什麼數據庫或意味着你必須跟蹤客戶的IP /端口。
我結束了使用print vars(self.transport)
,看到在輸出/控制檯的客戶對象......在這裏使用經典的PHP調試發現
你不能連接的過程中做到這一點,它存儲爲一個屬性,那麼只需閱讀稍後 –