में संपीड़ित रूप में आईपीवी 6 पता मैंने आईपीवी 6 पते को संपीड़ित करने के लिए Inet6Address.getByName("2001:db8:0:0:0:0:2:1").toString()
विधि का उपयोग किया है, और आउटपुट 2001:db8:0:0:0:0:2:1
है, लेकिन मुझे 2001:db8::2:1
की आवश्यकता है। , मूल रूप से संपीड़न उत्पादन पर RFC 5952 standard आधारित होना चाहिए, वह यह है किजावा
1) Shorten as Much as Possible: उदाहरण के लिए, 2001: db8: 0: 0: 0: 0: 2: 1 छोटा किया जाना चाहिए करने के लिए
2001: db8 :: 2 : 1. इसी तरह, 2001: डीबी 8 :: 0: 1 स्वीकार्य नहीं है, क्योंकि प्रतीक "::" का उपयोग छोटे प्रतिनिधित्व 2001: डीबी 8 :: 1 के उत्पादन के लिए किया जा सकता था।
2) Handling One 16-Bit 0 Field: प्रतीक "::" केवल एक 16-बिट 0 फ़ील्ड को छोटा करने के लिए उपयोग नहीं किया जाना चाहिए। उदाहरण के लिए, प्रतिनिधित्व 2001: डीबी 8: 0: 1: 1: 1: 1: 1 सही है, लेकिन 2001: डीबी 8 :: 1: 1: 1: 1: 1 सही नहीं है।
3) Choice in Placement of "::" : = जब वहाँ के एक "::", लगातार 16-बिट 0 क्षेत्रों में सबसे लंबे समय तक चलाने के लिए छोटा किया जाना चाहिए (यानी, लगातार तीन शून्य क्षेत्रों के साथ अनुक्रम है नियुक्ति में एक वैकल्पिक विकल्प है 2001 में छोटा: 0: 0: 1: 0: 0: 0: 1)। जब लगातार 16-बिट 0 फ़ील्ड की लंबाई बराबर होती है (यानी, 2001: डीबी 8: 0: 0: 1: 0: 0: 1), शून्य बिट्स का पहला अनुक्रम छोटा होना चाहिए। उदाहरण के लिए, 2001: डीबी 8 :: 1: 0: 0: 1 सही प्रतिनिधित्व है।
मैंने another post in Stack overflow पर भी जांच की है, लेकिन कोई शर्त निर्दिष्ट नहीं है (उदाहरण के लिए प्लेसमेंट विकल्प: :)।
क्या इसे संभालने के लिए कोई जावा लाइब्रेरी है? क्या कोई मेरी मदद कर सकता है?
अग्रिम धन्यवाद।
विश अनुसार प्रारूप है मैं कर सकता बस +1 की तुलना में अधिक पूरी तरह से स्पष्टीकरण के लिए –
+1 बहुत प्रभावशाली –
@ टिम बहुत बढ़िया .... आपके उत्कृष्ट उत्तर के लिए बहुत बहुत धन्यवाद। – Tony