इस कोड को अंतिम पंक्तिIPAddress.MapToIPv4() क्यों ArgumentOutOfRangeException फेंक देता है?
var initAddress = IPAddress.Parse("1.65.128.190");
var ipv6Address = initAddress.MapToIPv6();
Assert.IsTrue(ipv6Address.IsIPv4MappedToIPv6);
var ipv4Address = ipv6Address.MapToIPv4();
पर एक ArgumentOutOfRangeException फेंकता है किसी को भी व्याख्या कर सकते हैं क्यों MapToIPv6() और MapToIPv4() राउंड ट्रिप संगत नहीं हैं?
संपादित करें: अपवाद आईपीएड्रेस कन्स्ट्रक्टर से निकलता है, जिसे MapToIPv4() द्वारा बुलाया जाता है।
इसके अलावा, जब पहली पंक्ति
var initAddress = IPAddress.Parse("1.65.128.90");
कोई अपवाद नहीं फेंक दिया जाता है अब और
EDIT2 है: के रूप में @Luaan इस reproduced, मैं टैग [बग रिपोर्टिंग] को शामिल किया। [बीसीएल] भी जोड़ा। चलो देखते हैं किसी भी एमएस कर्मियों उन टैग :)
edit3 पटरियों यदि: कनेक्ट https://connect.microsoft.com/VisualStudio/feedback/details/871964 पर सूचना दी
दिलचस्प। बहुत सारे आईपीवी 4 पते हैं जिनके लिए यह ठीक काम करता है। असल में, कुछ विज्ञापन-परीक्षण परीक्षणों के आधार पर, ऐसा लगता है कि आखिरी बिट दोष देना है - शायद कोड में कहीं भी एक त्रुटि है जो उदारतापूर्वक 'लंबी', 'उलंग' और' int' का उपयोग सकारात्मक और नकारात्मक संख्याओं के साथ करती है । आप आईपीवी 6 मैप किए गए आईपीवी 4 पते क्यों चाहते हैं, यद्यपि? क्या आप लिनक्स सर्वर के साथ काम कर रहे हैं? मैंने सोचा कि विंडोज वास्तव में उनको संभाल नहीं लेता है (क्योंकि आईपीवी 4 और आईपीवी 6 नेटवर्किंग स्टैक पर अलग-अलग ड्राइवर हैं - आपको आईपीवी 4 और आईपीवी 6 दोनों को संभालने के लिए दो अलग सॉकेट की आवश्यकता है)। – Luaan
ठीक है, मुझे वास्तव में इसकी आवश्यकता नहीं है, लेकिन पते की तुलना करते समय मैंने इसे एक छोटी सी जीत माना। मुझे लगता है कि मैं भाग्यशाली हूं कि मेरे कोड के परीक्षणों में वास्तव में मुझे इस तरह का पता था, मुझे अपने समय से पहले (असुरक्षित) अनुकूलन से दूर ले जाने के लिए ... –
@ पैट्रिकहुइजिंग आह, मैं भी बग रिपोर्ट पोस्ट कर रहा हूं। वैसे भी, मैंने तुम्हारा ऊपर उठाया :) – Luaan