我刚刚开始创建一个简单的套接字“聊天”服务器,用户通过telnet
连接到我的服务器。我想知道如何获得连接用户的IP地址,以便它会打印出这样的用户消息:
IP address: "Hello"
这是我目前使用的代码:
def broadcast(self, message):
for sessions in self.sessions:
sessions.push('>>' + message + '\r\n')
提前致谢,如果您需要更多信息,请询问。
编辑:
指向整个计划的链接:http://pastebin.com/9vzuiLZe
答案 0 :(得分:4)
<your-socket-instance>.getpeername()
会给你你想要的东西
答案 1 :(得分:3)
您应该添加到您的代码中:
class ChatSession(async_chat):
def __init__(self,server,sock):
async_chat.__init__(self, sock)
self.server = server
self.set_terminator("\r\n")
self.data = []
self.sock = sock # <--- add this, so you remember the socket object
然后使用@staticd建议的内容:
def broadcast(self, line):
for sessions in self.sessions:
sessions.push(sessions.sock.getpeername() + ': ' + line + '\r\n')