我正在用python写一个简单的xmlrpc程序。类似于以下内容:

def foo(数据):

#我要在此处获取主叫客户的IP地址...我该怎么办?

server = SimpleXMLRPCServer.SimpleXMLRPCServer((主机,端口))
server.register_function(foo)

server.handle_request()

从上面可以看出,我想在注册函数“foo”中获取客户端IP地址,我该怎么办?

最佳答案

您可以通过子类化服务器(也可能是处理程序)来实现。例如。:

class MyXMLRPCServer(SimpleXMLRPCServer.SimpleXMLRPCServer):
    def process_request(self, request, client_address):
        self.client_address = client_address
        return SimpleXMLRPCServer.SimpleXMLRPCServer.process_request(
            self, request, client_address)

server=SimpleXMLRPCServer.MyXMLRPCServer((host, port))

现在,server.client_address为您提供所需的数据。请注意,这种直接的简短编码仅适用于单线程情况(无论如何,您都可以通过选择代码中的简单服务器来使用它)-如果要使用多线程,则需要使用处理程序。

10-08 19:27