हमें सीम एक्शन से क्लाइंट के आईपी पते को लॉग इन करने की आवश्यकता है। वर्तमान में, हम कोड का उपयोग कर रहे:HttpServletRequest.getRemoteAddr() गलत पता लौटा रहा है
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest)context.getRequest();
this.remoteAddress = request.getRemoteAddr();
बहरहाल, यह हमेशा नहीं बल्कि ग्राहक के आईपी पते से हमारे नेटवर्क का एक आंतरिक पते के लौटने किया जाना है, लगता है। मेरे शोध से, ऐसा लगता है कि नेटवर्क में एक रिवर्स प्रॉक्सी होने से चीजों को भ्रमित कर सकते हैं, लेकिन हम अपने वेब सर्वर को पुन: कॉन्फ़िगर करके इसे ठीक करने में सक्षम हो सकते हैं। क्या किसी और को यह समस्या है, और आपने इसे कैसे हल किया?
हम जेबॉस 5.1 ऐप सर्वर और अपाचे वेब सर्वर का उपयोग कर रहे हैं। धन्यवाद!
इससे HTTP प्रॉक्सी की मदद मिलेगी, लेकिन एनएटी फ़ायरवॉल के लिए बहुत कुछ नहीं होगा। – bmargulies
धन्यवाद कि यह अच्छी जानकारी है, लेकिन प्रॉक्सी दुर्व्यवहार क्या कर सकता है? मेरी समझ यह है कि अगर सब कुछ सही तरीके से कॉन्फ़िगर किया गया है, तो request.getRemoteAddr() को "x_forwarded_for" शीर्षलेख को किसी भी तरह से देखना चाहिए, और यदि यह सही तरीके से सेट नहीं है, तो वह शीर्षलेख भी वहां नहीं हो सकता है। –