2011-09-01 19 views
5

मैं जावा कोड का उपयोग कर अपने डोमेन में विंडोज मशीन के FQDN को प्राप्त करने का प्रयास कर रहा हूं।जावा में FQDN प्राप्त करें

मैंने InetAddress.getByName("machine-1").getCanonicalHostName() की कोशिश की है लेकिन केवल मशीन का नाम लौटाता है।

दूसरी तरफ यदि मैं "मशीन -1" पिंग करता हूं तो मुझे पूरी तरह से डोमेन नाम मिलता है।

आप इसे कैसे करना जानते हैं?

+0

मैं सोच रहा था, अगर आप विंडोज़ के इत्यादि/होस्ट में प्रवेश करते हैं तो आपका कोड काम करता है? – Cratylus

उत्तर

2

सरल उत्तर यह है कि यदि आप सुझाव दे सकते हैं तो यह सुझाव देता है।

एपीआई बताता है कि यह एफक्यूडीएन वापस कर देगा अगर यह कर सकता है। यह सिस्टम कॉन्फ़िगरेशन पर निर्भर करता है।

आपके द्वारा पोस्ट किया गया कोड विंडोज डोमेन मशीन पर मेरे लिए काम करता है, लेकिन मैं नहीं कह सकता कि यह आपके लिए क्यों नहीं होगा।

यदि आप मशीन/डोमेन कॉन्फ़िगरेशन को बदलने में असमर्थ हैं जैसे कि जावा इसे उठा सकता है, और आपके कोड के लिए यह FQDN का उपयोग करना आवश्यक है, तो आप जावा से पिंग कमांड निष्पादित करने का प्रयास कर सकते हैं और परिणामों को पार्स कर सकते हैं कम से कम एक अस्थायी उपाय के रूप में।

0

सुपर देर से उत्तर, शायद यह अगले यात्री की मदद करेगा।

InetAddress.getLocalHost().getCanonicalHostName() 

इस FQDN वापस आ जाएगी - मेरी JVM संस्करण 1.8.0_144

मैं इस JDK बग रिपोर्ट http://bugs.java.com/view_bug.do?bug_id=7166687 जो समझा सकती क्यों इतना भ्रम की स्थिति है पाया जाता है।

InetAddress.getLocalHost().getHostName() 

यह अभी होस्ट का नाम देता है।