套接字服务器 - 获取连接用户的IP

时间:2013-09-06 10:27:15

标签: python python-2.7 socketserver python-sockets

我刚刚开始创建一个简单的套接字“聊天”服务器,用户通过telnet连接到我的服务器。我想知道如何获得连接用户的IP地址,以便它会打印出这样的用户消息:

IP address: "Hello"

这是我目前使用的代码:

def broadcast(self, message):
      for sessions in self.sessions:
          sessions.push('>>' + message + '\r\n')

提前致谢,如果您需要更多信息,请询问。

编辑:

指向整个计划的链接:http://pastebin.com/9vzuiLZe

2 个答案:

答案 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')