[Twisted-Python] Get IP of connecting client in XMLRPC server

Attila Nagy bra at fsn.hu
Sun Apr 28 05:55:01 EDT 2013


On 06/11/04 16:56, Remy C. Cool wrote:
> On Friday 11 June 2004 16:35, Itamar Shtull-Trauring wrote:
>> On Fri, 2004-06-11 at 09:34, Remy C. Cool wrote:
>>> I'm currently in the process of changing from a customized
>>> SimpleXMLRPCServer to a twisted XMLRPC server solution and I need
>>> to insert the client IP into the attributes passed to the called
>>> xmlrpc method. Anyone who knows the answer and is willing to
>>> share the info?
>> The render() method of the XMLRPC class has access to the request
>> object, which may have request.getPeer() or
>> request.transport.getPeer().
> Thanks for the answer.
>
> The following works, but is this a 'twisted' way to go?
>
>
> class Examle(xmlrpc.XMLRPC):
>      """An example object to be published."""
>          
>      def _getPeerAddress(self):
>              return self.request.getClientIP()
>              
>      def render(self, request):
>          self.request = request
>          xmlrpc.XMLRPC.render(self, request)
>
Just for the record, this is the way to go (guess it was implemented later):

from twisted.web import xmlrpc
class Examle(xmlrpc.XMLRPC):
	@xmlrpc.withRequest
	def xmlrpc_whatIsMyAddress(self,request):
		return request.transport.getPeer().host





More information about the Twisted-Python mailing list