如何在python thrift服务器中获取客户端的IP

Hai*_*der 5 python thrift

我在python中编写了一个thrift服务,我想了解如何在处理函数上下文中获取客户端的IP地址.

谢谢,亲爱.

Jen*_*nsG 0

您需要获取传输,并从那里获取数据。不确定如何在 Python 中准确执行此操作,但有一个邮件列表线程,并且有一个 JIRA 票证 THRIFT-1053描述了 C++/Java 的解决方案。

这是邮件列表线程中的相关部分:

我通过像这个伪代码一样装饰 TProcessor 来做到这一点。

-克雷格

class TrackingProcessor implements TProcessor {
 TrackingProcessor (TProcessor processor) {this.processor=processor;}

 public boolean process(TProtocol in, TProtocol out) throws TException {
   TTransport t = in.getTransport();
   InetAddress ia = t instanceof TSocket ?
       ((TSocket)t).getSocket().getInetAddress() : null;
   // Now you have the IP address, so what ever you want.

   // Delegate to the processor we are decorating.
   return processor.process(in,out);
  }  
}
Run Code Online (Sandbox Code Playgroud)