如何使用xmlrpclib向所有方法公开客户端地址?

2024-05-17 13:24:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个小SimpleXMLRPCServer来检查客户机的ip。在

我试试这个:

服务器

导入xmlrpclib

从SimpleXMLRPCServer导入SimpleXMLRPCServer

server=SimpleXMLRPCServer((“localhost”,8000))

def MyIp(): return“您的ip是:%s”%server.socket.getpeername()

在server.register_函数(我的IP)

在永远服侍你()

客户

导入xmlrpclib

se=xmlrpclib.服务器(“http://localhost:8000”)

打印东南MyIp()

错误

在xmlrpclib.故障::(107,“传输终结点未连接”)“>

如何使客户机地址对所有功能可见?在


Tags: 函数ip服务器registerlocalhost客户机returnserver
1条回答
网友
1楼 · 发布于 2024-05-17 13:24:50

例如,如果希望将client_address作为第一个参数传递给每个函数,则可以将SimpleXMLRPCRequestHandler子类(在实例化SimpleXMLRPCServer时将子类作为处理程序传递)并重写_dispatch(将{}前置到params元组,然后将其余的委托给SimpleXMLRPCRequestHandler._dispatch)。如果这种方法是可行的,你想看到代码,只要问!在

我不确定您如何安全地使用除“使client_address可见”的函数参数之外的任何东西都没有client_address作为一个裸名,全局的或其他的,只有请求处理程序类的每个实例的self.client_address(并且诸如将其复制到全局变量之类的黑客操作在线程处理下确实让人觉得不舒服而且不安全,等等)。在

相关问题 更多 >