java.net.UnognHostException: अमान्य होस्टनाम सर्वर के लिए: स्थानीय


124

त्रुटि को हल करने के लिए मुझे क्या कदम उठाने चाहिए:

java.net.UnknownHostException: Invalid hostname for server: local

मैंने एंड्रॉइड एमुलेटर पर नया वर्चुअल होस्ट नाम जोड़ा, लेकिन परिणाम वापस आ गया

 java.net.UnknownHostException virtualhostname at 
  java.net.InetAddress.lookUpHostByName(InetAddress.java:506)

जब मैं अपने पीसी पर अपना वर्चुअलहॉस्ट URL टाइप करता हूं, तो यह डिस्प्ले पर काम करता है। फिर, जब मैं एमुलेटर पर दौड़ा और लोगकैट पर चेक किया, तो मैं 200, 202 या एक त्रुटि कोड संख्या पर HTTP स्थिति को पढ़ने या जांचने में सक्षम नहीं हो सका। यह बस में लौट आयाUnknownHostException


6
कुछ और जानकारी समस्या आसान हल करने के लिए हमें मदद मिलेगी
क्लैंप

क्या आप प्रॉक्सी सर्वर के पीछे हैं और प्रॉक्सी सेटिंग्स को कॉन्फ़िगर किया है? यदि ऐसा है, तो आपको लोकलहोस्ट और अन्य होस्ट को बाहर करने की आवश्यकता हो सकती है, जिन्हें एक वैध आईपी पते को हल करने के लिए प्रॉक्सी सर्वर की सहायता की आवश्यकता नहीं है।
asgs

मैंने एंड्रॉइड एमुलेटर पर नया वर्चुअल होस्ट नाम जोड़ा, लेकिन परिणाम "java.net.UnognHostException virtualhostname पर java.net.InetAddress.lookUpHostByName (InetAddress.java:506)" पर लौटता है। जब मैं अपने पीसी पर अपना वर्चुअलहॉस्ट URL टाइप करता हूं, तो यह डिस्प्ले पर काम करता है। फिर, जब मैं एमुलेटर पर दौड़ा और लोगकैट पर चेक किया, तो मैं 200, 202 या एक त्रुटि कोड संख्या पर HTTP स्थिति को पढ़ने या जांचने में सक्षम नहीं हो सका। यह बस "
अननोनहोस्ट एक्ससेप्शन

जवाबों:


66

अपवाद वास्तव में क्या कह रहा है कि "स्थानीय" नाम के साथ कोई ज्ञात सर्वर नहीं है। मेरा अनुमान है कि आप अपने स्थानीय कंप्यूटर से कनेक्ट करने का प्रयास कर रहे हैं। "localhost"इसके बजाय hostname के साथ प्रयास करें , या शायद 127.0.0.1या ::1(पिछले एक IPv6 है)।

से javadocs :

यह इंगित करने के लिए फेंक दें कि होस्ट का आईपी पता निर्धारित नहीं किया जा सकता है।

127.0.0.1या ::1या "localhost"हमेशा लूपबैक इंटरफ़ेस होना चाहिए, कि यदि ऐसा है तो काम नहीं करता है मैं वास्तव में हैरानी होगी।

यदि वास्तव में आपके नेटवर्क पर "स्थानीय" नामक एक सर्वर है - तो अपनी DNS सेटिंग्स की जांच करें या इसे अपने होस्ट फ़ाइल में जोड़ें।


1
कुछ कार्यान्वयन पर, जाहिरा तौर पर प्रभावी होने के लिए जेवीएम का पुनः आरंभ गेटवे / डीएनएस परिवर्तनों के लिए आवश्यक हो सकता है।
एंड्रे लास्ज़लो

68

मैं अपने मैक पर एक ही मुद्दा रहा था। मुझे समस्या तब मिली जब मैंने अपने $HOSTNAMEटर्मिनल से पिंग किया और यह वापस लौट आया ping: cannot resolve myHostName: Unknown host

हल करना:

  1. क्या echo $HOSTNAMEअपने टर्मिनल पर।
  2. जो भी होस्टनाम दिखाता है (कहने देता है myHostName), इसे पिंग करने का प्रयास करें ping myHostName:। यदि यह वापस आता है ping: cannot resolve myHostName: Unknown hostतो अपनी /etc/hostsफ़ाइल में एक प्रविष्टि जोड़ें ।
  3. उस संपादन /etc/hostsफ़ाइल के लिए और निम्नलिखित जोड़ें:

    127.0.0.1 myHostName

आशा करता हूँ की ये काम करेगा।


आश्चर्य है कि यह बॉक्स से बाहर कुछ मशीनों पर कैसे काम करता है और कुछ पर हमें मेजबानों के प्रवेश को जोड़ना होगा
स्काईनेट

16

java.net.UnognHostException: होस्ट अनसुलझा है:

यह इंगित करने के लिए फेंक दें कि होस्ट का आईपी पता निर्धारित नहीं किया जा सकता है।

यह अपवाद तब भी उठाया जाता है जब आप एक मान्य वाईफाई से जुड़े होते हैं लेकिन राउटर इंटरनेट प्राप्त नहीं करता है। इसका पुनरुत्पादन करना बहुत आसान है:

  1. एक मान्य वाईफाई से कनेक्ट करें
  2. अब राउटर को प्लग-इन करते हुए केबल को राउटर से हटा दें

आप इस त्रुटि का पालन करेंगे !!

आप वास्तव में इसे हल नहीं कर सकते, आप केवल उपयोगकर्ता को इनायत से सूचित कर सकते हैं। (कुछ ऐसा - "कनेक्शन बनाने में असमर्थ")


1
यह कहना अधिक सामान्य होगा कि अपवाद तब उठाया जाता है जब होस्ट DNS में नहीं मिलता है या जब DNS स्वयं नहीं मिल सकता है, उदाहरण के लिए किसी भी नेटवर्क कनेक्टिविटी के कारण, या गलत धारणा।
लोर्ने

तो आप इस समस्या को कैसे ठीक करते हैं?
कोकेड

2
आप वास्तव में इसे हल नहीं कर सकते, आप केवल उपयोगकर्ता को इनायत से सूचित कर सकते हैं। (कुछ इस तरह - "संबंध बनाने में असमर्थ")
ऐश

स्कूल नेटवर्क में इस समस्या का क्या मतलब है, लेकिन घर पर मेरा व्यक्तिगत कनेक्शन नहीं है?
सोडियमनाइट्रेट

@sodiumnitrate हो सकता है कि आपके स्कूल नेटवर्क को पहले कुछ id / pwd प्रमाणीकरण की आवश्यकता हो .. किसी भी ब्राउज़र में वेब url खोलने की कोशिश करें और देखें कि क्या वह ठीक से प्रदर्शित है
Ash

7

यह प्रश्न के लिए विशिष्ट नहीं है, लेकिन यह प्रश्न तब दिखाई दिया जब मैं उल्लेख के लिए Googling था UnknownHostException, और फिक्स कहीं और नहीं मिला, इसलिए मैंने सोचा कि मैं यहां एक उत्तर जोड़ूंगा।

लगातार प्राप्त होने वाला अपवाद था:

java.net.UnknownHostException:  google.com
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at java.net.Socket.<init>(Socket.java:434)
    at java.net.Socket.<init>(Socket.java:211)
    ... 

इससे कोई फर्क नहीं पड़ता कि मैंने किसी भी मान्य होस्ट से कनेक्ट करने का प्रयास किया, इसे टर्मिनल में प्रिंट करना भी मदद नहीं करेगा। सब कुछ सही था।

समाधान

trim() होस्ट स्ट्रिंग के लिए कॉल नहीं किया गया जिसमें व्हाट्सएप था । एक प्रॉक्सी सर्वर लिखने में हेडर के लिए split(":")अर्धविराम द्वारा उपयोग के साथ होस्ट को HTTP हेडर से प्राप्त किया गया था HOST। यह व्हाट्सएप को छोड़ देता है, और व्हॉट्सएप के UnknownHostExceptionसाथ एक मेजबान के रूप में एक मान्य होस्ट नहीं है। एक कर host = host.trim()पर String hostअस्पष्ट समस्या हल हो जाती।


यह मेरी समस्या थी।
स्टर्लिंग डियाज़

1
धन्यवाद - इसने मुझे बचाया। मेरे मामले में स्ट्रिंग होस्ट को कार्य के लिए पास किया जा रहा था, एक \ n प्रत्यय था, इसलिए .trim()उस पर चलना मेरे लिए निश्चित था!

1
धन्यवाद, मैंने यह पता लगाने की बहुत कोशिश की कि समस्या क्या थी जब तक मुझे एहसास नहीं हुआ कि मैंने दो अलग-अलग आईपी पतों के बीच एक रिक्त स्थान टाइप किया है।
सांडोवल

5

यह विभिन्न कारणों से हो सकता है

1) अगर आपने वीपीएन कनेक्ट किया है, तो जांचें कि आपको यह त्रुटि कभी-कभी हां में मिल सकती है

"आपका होस्टनाम, लोकलहोस्ट एक लूपबैक पते पर हल करता है: 127.0.0.1, इसके बजाय 10.xxx.1.193 का उपयोग कर (इंटरफ़ेस cscotun0 पर)"

2) अपने $ HOSTNAME की जाँच करें

3) कमांडलाइन पर $ HOSTNAME को पिंग करने का प्रयास करें और यदि यह काम नहीं करता है, तो अपने स्थानीय होस्ट को पिंग के लिए प्रतिक्रिया देने के लिए सिस्टम सेटिंग्स को ट्विन करें।


5

आपका होस्टनाम गायब है। जब यह सर्वर से जुड़ता है तो JBoss इस पर्यावरण चर ($ HOSTNAME) का उपयोग करता है।

[root@xyz ~]# echo $HOSTNAME
xyz

[root@xyz ~]# ping $HOSTNAME
ping: unknown host xyz

[root@xyz ~]# hostname -f
hostname: Unknown host

ऐसी दर्जनों चीजें हैं जो इसका कारण बन सकती हैं। यदि आप एक नया कारण खोजते हैं तो कृपया टिप्पणी करें।

जब तक आप अपने सर्वर पर इस समस्या को स्थायी रूप से हल नहीं कर सकते, तब तक किसी हैक के लिए, आप अपने / आदि / होस्ट फ़ाइल के अंत में एक पंक्ति जोड़ सकते हैं :

127.0.0.1 xyz.xxx.xxx.edu xyz


4

निम्नलिखित आज़माएँ:

String url = "http://www.google.com/search?q=java";
URL urlObj = (URL)new URL(url.trim());
HttpURLConnection httpConn = 
(HttpURLConnection)urlObj.openConnection();
httpConn.setRequestMethod("GET");
Integer rescode = httpConn.getResponseCode();
System.out.println(rescode);

URL को ट्रिम () करें


हार्ड-कोडेड स्ट्रिंग को बिना किसी रिक्त स्थान के ट्रिम करने से कोई मतलब नहीं है।
ब्लेक मैकब्राइड

1

अपने स्थानीय कंप्यूटर से कनेक्ट करने की कोशिश कर रहा है। इसके बजाय होस्टनाम "लोकलहोस्ट" के साथ या शायद :: / - अंतिम एक आईपीवी 6 है


1

कृपया SPARK_LOCAL_IP परिवेश चर को IP पते पर सेट करने का प्रयास करें (आप अपने खुद के आईपी पते को स्थानीय कर सकते हैं) यानी आप कनेक्ट करना चाहते हैं। उदाहरण के लिए

$ export SPARK_LOCAL_IP=182.95.208.152

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


0

अपने मोबाइल को विभिन्न सेवा प्रदाता के साथ अलग- अलग वाईफाई कनेक्शन से कनेक्ट करें । मुझे सटीक समस्या नहीं पता है, लेकिन मैं एक विशिष्ट सेवा प्रदाता के साथ सर्वर से कनेक्ट नहीं कर सका, लेकिन यह तब काम करता है जब मैं अन्य सेवा प्रदाता से जुड़ा होता हूं। तो यह कोशिश करो!


0

मेरे एंड्रॉइड ऐप में यह मुद्दा था जब एक xml फ़ाइल को हथियाने के लिए मेरे लिंक का प्रारूप मान्य नहीं था, मैंने पूर्ण यूआरएल के साथ सुधार किया और यह काम किया।


0

यदि आप यहां हैं क्योंकि आपका एमुलेटर आपको वह अपवाद देता है, तो अपने Android एमुलेटर में टूल्स> AVD मैनेजर पर जाएं और अपने एमुलेटर को कोल्ड बूट करें।


-1

यदि आपकी / etc / localhosts फ़ाइल में नीचे के रूप में प्रविष्टि है: नीचे के रूप में hostname प्रविष्टि जोड़ें:

127.0.0.1 local host (add your hostname here)
::1 (add hostname here) (the last one is IPv6).

इस मुद्दे को हल करना चाहिए।

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