2012-01-25 18 views
14

के साथ अनुरोध आईपी पता प्राप्त करना मैं पिरामिड फ्रेमवर्क का उपयोग कर रहा हूं और मैं आईपी पते तक पहुंचना चाहता हूं जिसमें से अनुरोध उत्पन्न हुआ था। मुझे लगता है कि यह अनुरोध ऑब्जेक्ट (प्रत्येक दृश्य फ़ंक्शन पर पास) में है, लेकिन मुझे दस्तावेज नहीं मिल रहा है जो मुझे बताता है कि यह कहां है।पिरामिड

+0

वेबोब के साथ आराम से रहने के लिए यह आपके लिए लायक हो सकता है। http://docs.webob.org/en/latest/index.html –

उत्तर

22

यह request.remote_addr में है।

आप इसे pyramid.request दस्तावेज़ीकरण में ढूंढ सकते हैं।

+0

बहुत बहुत धन्यवाद। मैंने प्रलेखन में देखा, लेकिन मुझे यह नहीं पता था कि "remote_addr" का अर्थ "आईपी पता" था। वे इसे "आईपी पता" क्यों नहीं कहते हैं? –

+4

क्योंकि "आईपी पता" संदिग्ध है - क्या यह सर्वर का पता, ग्राहक का पता, या कुछ और है? "remote_addr" रिमोट साइड का पता है, यानी क्लाइंट। –

4

या आप उपयोग कर सकते हैं request.environ['REMOTE_ADDR']

7

आप उपयोग कर सकते हैं: request.client_addr

+1

"उपयोगकर्ता एजेंटों के लिए किसी और के आईपी या HTTP_X_FORWARDED_FOR में किसी भी स्ट्रिंग को रखना संभव है क्योंकि यह एक सामान्य HTTP हैडर है। फॉरवर्ड प्रॉक्सी गलत मान भी प्रदान कर सकते हैं (निजी आईपी पते इत्यादि)। आप" अंधाधुंध "परिणाम पर भरोसा नहीं कर सकते यह विधि आपको वैध डेटा प्रदान करने के लिए जब तक कि आप निश्चित न हों कि HTTP_X_FORWARDED_FOR के पास सही मान हैं। WSGI सर्वर सत्य होने के लिए एक विश्वसनीय प्रॉक्सी के पीछे होना चाहिए। " इसलिए यदि मैं इसे सही ढंग से समझता हूं, तो आपको 'remote_addr' का उपयोग करना चाहिए जबतक कि आप एक विश्वसनीय प्रॉक्सी के पीछे न हों जो सही HTTP_X_FORWARDED_FOR सेट करता है। –

+0

@YannDinendal: हाँ, आप सही हैं। क्षमा करें अगर मैंने इस बिंदु को स्पष्ट नहीं किया है। –

संबंधित मुद्दे