2012-01-19 12 views
8

क्या स्प्रिंग 3 एमवीसी में अनुरोध हैडर जानकारी (जैसे स्रोत आईपी पता इत्यादि) तक पहुंच प्राप्त करने के लिए कोई तरीका है, @Controller में अनुरोध पार्स करते समय?स्प्रिंग 3 एमवीसी वेब अनुप्रयोग में अनुरोध स्रोत आईपी तक पहुंच

उत्तर

37

हेडर वैल्यू प्राप्त करने के लिए आप उपयोगकर्ता आईपी पते और getHeader() तक पहुंच प्राप्त करने के लिए getRemoteAddr() का उपयोग करके HttpServletRequest से इसे पुनर्प्राप्त कर सकते हैं।

उदाहरण

@Controller 
public class MyController { 
    @RequestMapping(value="/do-something") 
    public void doSomething(HttpServletRequest request) { 
     final String userIpAddress = request.getRemoteAddr(); 
     final String userAgent = request.getHeader("user-agent"); 
     .... 
    } 
} 

के लिए आप की तरह मॉडल या अनुरोध पैरामीटर, doSomething() विधि करने के लिए अन्य मापदंड प्रदान कर सकते।

+0

धन्यवाद। जब मुझे अधिसूचना मिली तो मैं वास्तव में अपनी पोस्ट को हटाने में व्यस्त था। पता लगा लिया। फिर भी धन्यवाद! –

+4

यदि क्लाइंट प्रॉक्सी सर्वर के पीछे है तो संभव समाधान 'स्ट्रिंग आईपी = req.getHeader ("एक्स-फॉरवर्ड-फॉर") का उपयोग करके होगा; ' –

+0

और फिर इसे' if (ip == null) ip = request जैसी स्थिति से संभालना .getRemoteAddr(); ' –

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