होस्टनाम का आईपी-पता हल करना


85

मेरे पास DNS सर्वर आईपी एड्रेस और एक होस्टनाम है।

जावा का उपयोग करके, मैं उस DNS सर्वर द्वारा IP पते और होस्टनाम का उपयोग करके होस्टनाम का आईपी पता कैसे प्राप्त कर सकता हूं?


3
dig <hostname>एक कमांड लाइन में?
ceejayoz

जावा कोड में समान कैसे करें और मुझे DNS-Server आईपी एड्रेस और होस्टनाम का उपयोग कहां करना चाहिए।
डार्क मैटर

एक और क्वेरी हमें किसी भी मामले में DNS सर्वर आईपी पता प्रदान करने की आवश्यकता होगी या क्या यह डिफ़ॉल्ट रूप से खोजने की कोशिश करेगा। क्या मैं यहां थोड़ा भ्रमित हूं कि क्या हमें केवल होस्टनाम या होस्टनाम + डीएनएस-सर्वर आईपी पते का भी उपयोग करने की आवश्यकता है?
डार्क मैटर

1
नाम का उपयोग करते हुए पते की खोज जटिल नहीं है। जब तक आप सिस्टम के डिफ़ॉल्ट रिज़ॉल्वर का उपयोग करते हैं। तो: क्या आपको वास्तव में DNS सर्वर पते का उपयोग करने की आवश्यकता है?
एएच

मेरे पास एक ही सवाल है: क्या मुझे DNS सर्वर पते की वास्तविक आवश्यकता है या यह डिफ़ॉल्ट रूप से पते को हल करेगा। BTW मैं AIX यूनिक्स सर्वर का उपयोग कर रहा हूं।
डार्क मैटर

जवाबों:


126

एक नजर InetAddressऔर getHostAddress()विधि पर।

InetAddress address = InetAddress.getByName("www.example.com"); 
System.out.println(address.getHostAddress()); 

यदि मेरे पास dns ip एड्रेस 10.37.221.152 है और एक होस्ट नाम "www.student.com" कहता है, तो मैं आईपी एड्रेस कैसे पा सकता हूं।
डार्क मैटर

3
@DarkMatter: InetAddressजब आप मांगते हैं तो डीएनएस हल पता प्राप्त करना चाहिए getHostAddress()। मुझे यकीन नहीं है कि आप इसे एक विशिष्ट DNS सर्वर का उपयोग करने के लिए मजबूर कर सकते हैं ।
thegrinner

तो यह प्रोग्रामर के बिना स्वयं ही DNS सर्वर पते को स्पष्ट रूप से सही निर्दिष्ट करने के लिए आदर्श रूप से हल करना है?
डार्क मैटर

1
@DarkMatter हां। मेरा मानना ​​है कि यह कंप्यूटर पर जो भी DNS सर्वर सेट है उसका उपयोग करता है।
thegrinner


9

आप इसके लिए InetAddress का उपयोग कर सकते हैं। नीचे दिए गए कोड का प्रयास करें,

InetAddress address = InetAddress.getByName("www.yahoo.com");
System.out.println(address.getHostAddress());
System.out.println(address.getHostName());

3

जैसा कि ऊपर सभी ने सुझाव दिया है, आप इसका उपयोग कर सकते हैं InetAddress.getByName("hostName")लेकिन यह आपको एक कैश्ड आईपी दे सकता है, उसी के लिए जावा प्रलेखन पढ़ें। यदि आप DNS से ​​IP प्राप्त करना चाहते हैं, तो आप इसका उपयोग कर सकते हैं:

InetAddress[] ipAddress = DNSNameService.lookupAllHostAddr("hostName");

क्या उठाई बाहर @daksh के अलावा, आप DNS प्रतिक्रिया कैश के रूप में सुझाव दिया निष्क्रिय कर सकते हैं यहाँ लेकिन कैश अक्षम करने के साथ-साथ डीएनएस अपने ओएस के साथ ही के रूप में सुझाव अन्य DNS सर्वर द्वारा बनाई गई प्रतिक्रियाओं की कैशिंग के समय के बारे में पता होना यहाँ । आशा है कि यह मदद करता है
CrazyGreenHand

किसी कारण से यह कॉल मुझे किसी भी होस्टनाम के लिए सकारात्मक परिणाम देता है। मुझे लगा कि मैं अपने आईपी को डिफॉल्ट करता हूं, लेकिन नहीं, यह मुझे किसी भी अज्ञात होस्ट के लिए कुछ विशिष्ट आईपी देता है।
इमास्कर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.