2011-04-06 28 views
51

करने के लिए एक स्ट्रिंग (एक आईपी का प्रतिनिधित्व) कन्वर्ट:
Is there an easy way to convert String to Inetaddress in Java?जावा: संभावित डुप्लिकेट InetAddress

मैं एक स्ट्रिंग परिवर्तित करने के लिए कोशिश कर रहा हूँ (एक आईपी पता का प्रतिनिधित्व करने, जैसे 10.0.2.50) InetAddress ओबीजे में।

एपीआई के अनुसार एक ऑब्जेक्ट बनाना संभव है जो एक होस्टिंग का प्रतिनिधित्व करने वाली स्ट्रिंग प्रदान करता है (उदा। www.google.ch)। यह मेरे लिए एक विकल्प नहीं है क्योंकि मेरे पास प्रत्येक इंटैड्रेस ऑब्जेक्ट के लिए होस्टनाम नहीं है जिसे मैं बनाना चाहता हूं (इसके अलावा इसमें बहुत लंबा समय लगता है)।

क्या स्ट्रिंग (उदा। 10.0.2.50) को InetAddress obj में परिवर्तित करना संभव है? (एपीआई के अनुसार अगर आप byte[] के रूप में आईपी है ऐसा करने के लिए संभव है, लेकिन मैं कैसे एक Stringbyte[] में एक आईपी युक्त परिवर्तित?)

+0

यह नहीं मिला, यह वास्तव में एक ही समस्या है। – rob

उत्तर

118

बस अपनी शाब्दिक आईपी पते में गुजर InetAddress.getByName(String host) कहते हैं।

जावाडोक से: होस्ट का नाम या तो मशीन नाम हो सकता है, जैसे "java.sun.com", या उसके आईपी पते का एक पाठ प्रस्तुतिकरण।

InetAddress javadoc

+0

thx! ऐसा लगता है कि मैंने इस भाग को छोड़ दिया। उसके लिए खेद है। – rob

+1

जो लोग इसका उपयोग करते हैं, कृपया ध्यान दें कि यदि आईपी-एड्रेस मान्य नहीं है तो लुकअप के लिए टाइमआउट काफी लंबा है कि बार-बार किया जाने पर यह प्रोग्राम धीरे-धीरे चलने का कारण बनता है। – Flipbed

+9

यह एक बुरा विचार है यदि आप जो करना चाहते हैं वह पार्स आईपी पते है, क्योंकि GetByName होस्टनाम लुकअप भी करेगा। यदि आपके फ़ंक्शन में होस्टनाम पास हो गया है, तो आप सिंक्रोनस नेटवर्क I/O कर रहे होंगे जहां आप बनने का इरादा नहीं रखते थे। –

11
InetAddress.getByName(String host) के प्रलेखन से

:

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

तो आप इसका उपयोग कर सकते हैं।

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

  • कोई संबंधित समस्या नहीं^_^