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