2015-10-03 12 views
6

मैं uint पर आई पी एड्रेस बदलने की कोशिश:System.Net.IPAddress.Address 'अप्रचलित है

IPAddress requstedIpAddress; 
uint requesteIpAddressUint = (uint)IPAddress.Parse(requstedIpAddress.ToString()).Address; 

और यह चेतावनी मिल गया:

' System.Net.IPAddress.Address 'है अप्रचलित: 'यह संपत्ति बहिष्कृत है। यह पता परिवार परिवार निर्भर है। तुलना प्रदर्शन करने के लिए IPAddress.Equals विधि का उपयोग करें।

इसका क्या अर्थ है और क्या मुझे ऐसा करने के किसी अन्य तरीके का उपयोग करना चाहिए?

+0

आपके द्वारा आयात किए गए सभी पुस्तकालय क्या हैं? –

+2

आईपीवी 6 पता 'uint' के लिए उपयुक्त नहीं है। की – PetSerAl

+0

संभावित डुप्लिकेट [कैसे आप सी # में एक uint मूल्य के लिए एक आईपी पते स्ट्रिंग पार्स करते हैं?] (http://stackoverflow.com/questions/36831/how-do-you-parse-an-ip-address-string- टू-ए-यूंट-वैल्यू-इन-सी) –

उत्तर

5

बहिष्करण चेतावनी आपको बताती है कि आपकी लाइब्रेरी के अगले अपडेट में IPAddress परिभाषित है, अब संपत्ति के रूप में IPAddress.Address नहीं होगा। तो आपका कोड लाइब्रेरी के अगले अपडेट के बाद संकलित करने में विफल हो जाएगा।

यदि आप IPAddress.Address के लिए प्रलेखन पर जाते हैं तो यह नोट करता है कि संपत्ति अप्रचलित है और इसके बजाय IPAddress.GetAddressBytes का उपयोग करना चाहिए।

IPAddress.Address की निंदा आईपीवी 6 को अपनाने जो 128 बिट है, जबकि सी # प्रकार long, जो वास्तव में एक System.Int64 है, केवल 64 बिट्स है के कारण है।

+0

IPAddress.GetAddressBytes तो यह बेहतर उपयोग कर रहा है, के बारे में अगर मैं एक आइपीवी^पता है क्या? –

+0

मेरा मतलब है आईपीवी 6 .... –

+0

'आईपीएड्रेस.गेट एड्रेसबेट्स 'बाइट्स []' लौटाता है ताकि यह आईपी एड्रेस वी 4 और वी 6 और संभवतः अगले पुनरावृत्तियों का समर्थन कर सके, हालांकि कुछ समय की संभावना नहीं है। –

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