जावा में InetAddress ऑब्जेक्ट बनाना


82

मैं एक IP नंबर या एक नाम, स्ट्रिंग (यानी localhostया दोनों 127.0.0.1) द्वारा निर्दिष्ट पते को एक InetAdress ऑब्जेक्ट में बदलने की कोशिश कर रहा हूं । कोई निर्माता नहीं है, बल्कि स्थैतिक तरीके हैं जो एक InetAddress को लौटाते हैं । इसलिए अगर मुझे एक होस्ट नाम मिलता है तो यह कोई समस्या नहीं है, लेकिन अगर मुझे आईपी नंबर मिले तो क्या होगा? वहाँ एक विधि है कि बाइट हो जाता है [] लेकिन मुझे यकीन नहीं है कि यह कैसे मेरी मदद कर सकता है। अन्य सभी विधियों को होस्ट नाम मिलता है।

InetAddress API प्रलेखन

जवाबों:


133

आपको getByName या getByAddress का उपयोग करने में सक्षम होना चाहिए ।

होस्ट नाम या तो मशीन का नाम हो सकता है, जैसे "java.sun.com", या इसके आईपी पते का एक पाठीय प्रतिनिधित्व

InetAddress addr = InetAddress.getByName("127.0.0.1");

एक बाइट सरणी लेने वाली विधि का उपयोग इस तरह किया जा सकता है:

byte[] ipAddr = new byte[]{127, 0, 0, 1};
InetAddress addr = InetAddress.getByAddress(ipAddr);

3
आप क्या करते हैं, जब आप संख्या में बड़े हो गए तो 127? उदाहरण के लिए आईपी 192.168.0.1। क्या आप 0xFF के साथ int मास्क करते हैं? या आप सिर्फ बाइट के लिए इंट कास्ट करते हैं?
मतेज कोरमुथ

@MatejKormuth मुझे लगता है कि 0xFF के साथ काम करना चाहिए।
बाला आर

1
@ matej-kormuth आप इसे भी व्यक्त कर सकते हैं जैसे Inet4AddressImpl करता है:byte[] loopback = {0x7f,0x00,0x00,0x01};
कार्लोस

"डिफॉल्ट कंस्ट्रक्टर अपवाद प्रकार को हैंडल नहीं कर सकता है। अज्ञात सुपर कन्स्ट्रक्टर द्वारा फेंका गया अपवाद। स्पष्ट कंस्ट्रक्टर को परिभाषित करना चाहिए"
Schütze

एक कोशिश / पकड़ने के बयान में InetAddress निर्माण को घेरने में मदद करता है।
मैथ्यू रेडमंड

9

InetAddress के लिए API से

होस्ट नाम या तो मशीन का नाम हो सकता है, जैसे "java.sun.com", या इसके आईपी पते का एक पाठीय प्रतिनिधित्व। यदि एक शाब्दिक आईपी पते की आपूर्ति की जाती है, तो केवल पता प्रारूप की वैधता की जांच की जाती है।



3

InetAddress.getByName IP पते के लिए भी काम करता है।

JavaDoc से

होस्ट नाम या तो मशीन का नाम हो सकता है, जैसे "java.sun.com", या इसके आईपी पते का एक पाठीय प्रतिनिधित्व। यदि एक शाब्दिक आईपी पते की आपूर्ति की जाती है, तो केवल पता प्रारूप की वैधता की जांच की जाती है।


3

एपीआई का उपयोग करने के लिए काफी आसान है।

// Lookup the dns, if the ip exists.
 if (!ip.isEmpty()) {
     InetAddress inetAddress = InetAddress.getByName(ip);
     dns = inetAddress.getCanonicalHostName(); 
 }

0

यह किसी भी वेबसाइट का आईपी पता प्राप्त करने के लिए एक परियोजना है, यह उपयोगी और बनाने में आसान है।

import java.net.InetAddress;
import java.net.UnkownHostExceptiin;

public class Main{
    public static void main(String[]args){
        try{
            InetAddress addr = InetAddresd.getByName("www.yahoo.com");
            System.out.println(addr.getHostAddress());

          }catch(UnknownHostException e){
             e.printStrackTrace();
        }
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.