में कौन सा लाइब्रेरी उपयोग किया जा सकता है यह जांचने के लिए कि मैं एक आईपी पता किसी दिए गए सबनेट में है या नहीं? मुझे अपाचे कॉमन्स सबनेटयूल्ट्स (SubnetUtils.SubnetInfo.isInRange) जैसे पुस्तकालय मिल सकते हैं लेकिन कई अभी तक आईपीवी 6 का समर्थन नहीं करते हैं।जावा लाइब्रेरी यह जांचने के लिए कि आईपीवी 4 या आईपीवी 6 पता किसी दिए गए सबनेट
उत्तर
edazdarevic's CIDRUtils आईपीवी 4 और आईपीवी 6 दोनों का समर्थन करता है। उदाहरण में बूलियन isInRange (स्ट्रिंग ipAddress) का उल्लेख नहीं है, लेकिन यह लागू किया गया है!
एक और विकल्प java-ipv6 है, लेकिन यह आईपीवी 4 और requires JDK7 का समर्थन नहीं करता है।
The IPAddress Java library एक पॉलीमोर्फिक तरीके से आईपीवी 4 और आईपीवी 6 दोनों का समर्थन करता है और सबनेट्स का समर्थन करता है, जिसमें एक सबनेट में किसी पते या सबनेट की रोकथाम की जांच की जाती है। जावाडोक लिंक पर उपलब्ध है।
यहां sample code है जो आपकी समस्या का समाधान करता है, जो आईपीवी 4 या आईपीवी 6 के साथ समान रूप से काम करता है।
वसंत के IpAddressMatcher का उपयोग करें। अपाचे कॉमन्स नेट के विपरीत, यह आईपीवी 4 और आईपीवी 6 दोनों का समर्थन करता है।
private void checkIpMatch() {
matches("192.168.2.1", "192.168.2.1"); // true
matches("192.168.2.1", "192.168.2.0/32"); // false
matches("192.168.2.5", "192.168.2.0/24"); // true
matches("92.168.2.1", "fe80:0:0:0:0:0:c0a8:1/120"); // false
matches("fe80:0:0:0:0:0:c0a8:11", "fe80:0:0:0:0:0:c0a8:1/120"); // true
matches("fe80:0:0:0:0:0:c0a8:11", "fe80:0:0:0:0:0:c0a8:1/128"); // false
matches("fe80:0:0:0:0:0:c0a8:11", "192.168.2.0/32"); // false
}
private boolean matches(String ip, String subnet) {
IpAddressMatcher ipAddressMatcher = new IpAddressMatcher(subnet);
return ipAddressMatcher.matches(ip);
}
सुझाव: भले ही आप वसंत का उपयोग नहीं कर रहे हैं और आप एक त्वरित हल्के समाधान की जरूरत है, तो आप अभी भी source code बहुत कम संशोधनों (इंटरफेस को हटाने) के साथ इस वर्ग का उपयोग कर सकते हैं। (हालांकि इस दृष्टिकोण गंभीर परियोजनाओं के लिए अनुशंसित नहीं है और/या आप का उल्लंघन कर रहे हैं यदि उनके license!)
commons-ip-math दोनों IPv4 और IPv6 पतों के लिए सहायता प्रदान करता है। यहाँ आप कैसे जांच कर सकते हैं एक आईपी पता किसी सबनेट में है अगर है:
Ipv4Range.parse("192.168.0.0/24").contains(Ipv4.parse("10.0.0.1"))
// false
Ipv6Range.parse("2001:db8::/32").contains(Ipv6.parse("2001:db8::4"))
// true
(त्याग, मैं कॉमन्स-आईपी-गणित की देखरेख में से एक हूँ)
- 1. आईपीवी 4/आईपीवी 6
- 2. आईपीवी 6 और आईपीवी 4
- 3. आईपीवी 6 को आईपीवी 4
- 4. आईपीवी 6
- 5. आईपीवी 6 पता
- 6. आईपीवी 4, आईपीवी 6 और होस्टनाम
- 7. यह निर्धारित करें कि कोई इनसेटसेट एड्रेस आईपीवी 6 या आईपीवी 4
- 8. आईपीवी 6
- 9. आईपीवी 6 सी #
- 10. आईपीवी 6
- 11. जेएमडीएनएस आईपीवी 4 इंटरफ़ेस पर पंजीकृत है, लेकिन आईपीवी 6
- 12. रेल 3 मान्य आईपीवी 4 और आईपीवी 6 प्रारूप
- 13. जावा डेवलपर्स के लिए आईपीवी 6 तैयारी
- 14. ValueError: '10 .0.0.0/24 'एक आईपीवी 4 या आईपीवी 6 नेटवर्क प्रतीत नहीं होता है
- 15. आईपीवी 4 पता के inet_aton सामान्यीकरण
- 16. आईपीवी 4 और आईपीवी 6 तारों के मिलान के लिए जावा नियमित अभिव्यक्तियां क्या हैं?
- 17. PHP में आईपीवी 6 का पता लगाएं?
- 18. आईपीवी 6 के साथ जिओलोकेशन?
- 19. रेल आईपीवी 6 सर्वर
- 20. एसक्यूएल सर्वर में एकल कॉलम में आईपीवी 4 या आईपीवी 6 दोनों को कैसे स्टोर करें?
- 21. MySQL डेटाबेस (आईपीवी 4 और आईपीवी 6) में आईपी पता संग्रहीत करना
- 22. यह निर्धारित करने के लिए कि कोई स्ट्रिंग सी # में एक वैध आईपीवी 4 या आईपीवी 6 पता है या नहीं?
- 23. जावा में एंड्रॉइड और आईपीवी 6
- 24. आईपीवी 6 लुकअप डेटा संरचना
- 25. यह जांचने के लिए कि कोई आईपी पता किसी विशेष सबनेट
- 26. PHP $ _SERVER ['REMOTE_ADDR'] आईपीवी 6
- 27. कैसंद्रा का सुनो पता हमेशा एक आईपीवी 6 पता
- 28. आईआईएस Request.UserHostAddress आईपीवी 6 (:: 1) लौटा रहा है, भले ही आईपीवी 6 अक्षम
- 29. आईपीवी 4 से आईपीवी 6 में बदलें: वेब विकास पर इसका क्या प्रभाव है?
- 30. पायथन: सबनेट-रूटर के लिए निर्धारित पैकेट प्राप्त करने के लिए आईपीवी 6 सॉकेट प्राप्त करना कोई भी पता पता
कॉमन्स के लिए नेट सुविधा का अनुरोध इसके लिए वोट दें: https://issues.apache.org/jira/browse/NET-405 – Vadzim