كيفية تعريض العميل_ADDRESS إلى جميع الأساليب، باستخدام XMLRPCLIB؟

StackOverflow https://stackoverflow.com/questions/978784

  •  13-09-2019
  •  | 
  •  

سؤال

أقوم بإنشاء Little Simplexmlrpcserver للتحقق من IP للعميل.

أحاول هذا:

الخادم

استيراد xmlrpclib.

من Simplexmlrpcserver استيراد Simplexmlrpcserver

خادم = simplexmlrpcserver (("localhost"، 8000)

Def MyP (): إرجاع "IP الخاص بك هو:٪ s"٪ server.socket.getpeername ()

server.register_function (MyP)

server.serve_forever ()

عميل

استيراد xmlrpclib.

SE = xmlrpclib.server ("http: // localhost: 8000")

طباعة se.myip ()

خطأ

xmlrpclib.fault :: (107، "نقطة النهاية النقل غير متصلة") ">

كيف تجعل العميل_address مرئيا لجميع الوظائف؟

هل كانت مفيدة؟

المحلول

إذا كنت تريد على سبيل المثال لتمرير client_address كحجة الأولى لكل وظيفة، يمكنك تصنيف SPALESCLASS SPALESSXMLRPCREQESHESTHEDHANDERLER (تمرير الفئة الفرعية الخاصة بك كمعالج عند إنشاء مثيل بسيط pressxmlrpcserver) وتجاوز _dispatch (لإعداد self.client_address إلى Params Tuple ثم تفويض الباقي SimpleXMLRPCRequestHandler._dispatch). إذا كان هذا النهج موافق وتريد أن ترى التعليمات البرمجية، اسأل فقط!

لست متأكدا من كيفية استخدام أي شيء بأمان سوى حجج الوظيفة " client_address مرئي "- لا يوجد client_address كاسم عاري، عالمي أو غير ذلك، هناك فقط self.client_address من كل حالة من فئة معالج الطلب (ومخالفات مثل نسخها إلى متغيرات عالمية هل حقا يوكي بالفعل - وغير آمنة تحت خيوط، إلخ، إلخ).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top