java.net.InetAddress डिफ़ॉल्ट रूप से स्थानीय मशीन के डिफ़ॉल्ट होस्ट-नाम समाधानकर्ता का उपयोग कर होस्ट नामों को हल करता है:जावा में कस्टम DNS सर्वर का उपयोग करने के लिए होस्टनाम रिज़ॉल्यूशन को कॉन्फ़िगर कैसे करें?
होस्ट नाम करने वाली आईपी पते संकल्प जैसे सेवाओं नामकरण स्थानीय मशीन विन्यास सूचना और नेटवर्क का एक संयोजन के उपयोग के माध्यम से पूरा किया है डोमेन नाम सिस्टम (डीएनएस) और नेटवर्क सूचना सेवा (एनआईएस)। डिफ़ॉल्ट नामकरण सेवाओं का उपयोग डिफ़ॉल्ट रूप से स्थानीय मशीन को एक कॉन्फ़िगर किया गया है। किसी भी मेजबान नाम के लिए, इसका संबंधित आईपी पता वापस कर दिया जाता है। [source]
कैसे हम स्थानीय मशीन के डिफ़ॉल्ट होस्ट नाम समाधानकर्ता को संशोधित किए बिना इस व्यवहार कॉन्फ़िगर कर सकते हैं? 4860: 4860 :: 8888, 2001: 4860: 4860
उदाहरण के लिए, कॉन्फ़िगर करने के लिए इस तरह के java.net.InetAddress यह OpenDNS (208.67.222.222, 208.67.220.220) या Google सार्वजनिक DNS (2001 के माध्यम से मेजबान के नाम का समाधान करता है कि वैसे भी है: : 8844)?
या डीएनएस पैकेट अनुरोधों को स्पष्ट रूप से बनाने का एकमात्र समाधान है, उन्हें java.net.DatagramSocket या java.net.Socket के माध्यम से सर्वर पर भेज दें, और प्रतिक्रियाओं को पार्स करें?
जैसा कि एक ही साइट में प्रलेखित किया गया है: "ये गुण भविष्य में रिलीज़ में समर्थित नहीं हो सकते हैं।" क्या इसे हासिल करने का कोई और तरीका है? – bernatp
नहीं। नहीं, अगर आप 'java.net.InetAddress' का उपयोग करना चाहते हैं। यदि आप एक अलग तंत्र का उपयोग कर ठीक हैं तो आप निश्चित रूप से किसी तृतीय पक्ष DNS लाइब्रेरी का उपयोग कर सकते हैं (उदा। [Dnsjava] (http://www.dnsjava.org/))। गुणों को बदलने का एकमात्र वास्तविक कारण यह है कि यदि ओरेकल जावा के कुछ भावी संस्करण में 'java.net' कार्यान्वयन को ओवरहाल करता है। यदि ऐसा होता है तो वे उस समय भी इस समस्या का एक नया समाधान प्रदान करेंगे। – Pace
उन्होंने जावा 9 में 'java.net' को ओवरहाल किया, इसलिए' sun.net' वर्गों को इसे बंद करने के लिए आवश्यक नहीं है। – ndm13