java.net.UnعلومHostException: সার্ভারের জন্য অবৈধ হোস্টনাম: স্থানীয়


124

ত্রুটিটি সমাধান করার জন্য আমার কী পদক্ষেপ নিতে হবে:

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

আমি অ্যান্ড্রয়েড এমুলেটরটিতে নতুন ভার্চুয়াল হোস্টের নামটি যুক্ত করেছি তবে ফলাফলটি ফিরে আসে

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

আমি যখন আমার পিসিতে আমার ভার্চুয়ালহোস্ট ইউআরএল টাইপ করি তখন এটি প্রদর্শিত হয়। তারপরে আবার, যখন আমি এমুলেটরটিতে দৌড়ে গিয়ে লগক্যাটটিতে চেক করতাম, আমি 200, 202, বা ত্রুটি কোড নম্বর থাকলে HTTP স্থিতি পড়তে বা চেক করতে সক্ষম হতে পারি না। এটি কেবল ফিরে এসেছিলUnknownHostException


6
কিছুটা আরও তথ্য আমাদের সমস্যাটি আরও সহজে সমাধান করতে সহায়তা করবে
ক্ল্যাম্প করুন

আপনি কি প্রক্সি সার্ভারের পিছনে এবং প্রক্সি সেটিংস কনফিগার করেছেন? যদি তা হয় তবে আপনাকে লোকালহোস্ট এবং অন্যান্য হোস্টগুলি বাদ দিতে হবে যা বৈধ IP ঠিকানার সমাধানের জন্য প্রক্সি সার্ভারের সাহায্যের প্রয়োজন নেই।
asgs

আমি অ্যান্ড্রয়েড এমুলেটরটিতে নতুন ভার্চুয়াল হোস্টের নামটি যুক্ত করেছি তবে ফলাফলটি "java.net.InnAddress.lookUpHostByName (inetAddress.java:506)" java.net.UnعلومHostException ভার্চুয়াল হোস্টনেমে ফিরে আসে "। আমি যখন আমার পিসিতে আমার ভার্চুয়ালহোস্ট ইউআরএল টাইপ করি তখন এটি প্রদর্শিত হয়। তারপরে আবার, যখন আমি এমুলেটরটিতে দৌড়ে গিয়ে লগক্যাটটিতে চেক করতাম, আমি 200, 202, বা ত্রুটি কোড নম্বর থাকলে HTTP স্থিতি পড়তে বা চেক করতে সক্ষম হতে পারি না। এটি কেবল "অজানাহস্টএক্সেপশন"
ডেভিড ডিমালান্টা

উত্তর:


66

ব্যতিক্রমটি আসলে যা বলছে তা হ'ল "লোকাল" নামটির সাথে কোনও পরিচিত সার্ভার নেই। আমার অনুমান যে আপনি নিজের স্থানীয় কম্পিউটারের সাথে সংযোগ দেওয়ার চেষ্টা করছেন। "localhost"পরিবর্তে হোস্টনাম দিয়ে চেষ্টা করুন , বা সম্ভবত 127.0.0.1বা ::1(শেষটি আইপিভি 6)।

জাভাডোকস থেকে :

হোস্টের আইপি ঠিকানা নির্ধারণ করা যায়নি তা বোঝাতে ছুড়ে দেওয়া হয়েছিল।

127.0.0.1অথবা ::1বা "localhost"সর্বদা লুপব্যাক ইন্টারফেস হওয়া উচিত, তাই যদি এটি কাজ না করে তবে আমি সত্যিই অবাক হব।

যদি আপনার নেটওয়ার্কে সত্যই "স্থানীয়" নামে একটি সার্ভার থাকে - আপনার ডিএনএস সেটিংস পরীক্ষা করুন বা এটি আপনার হোস্ট ফাইলে যুক্ত করুন।


1
কিছু বাস্তবায়নের ক্ষেত্রে গেটওয়ে / ডিএনএস পরিবর্তনগুলি কার্যকরভাবে কার্যকর করার জন্য জেভিএম পুনঃসূচনা প্রয়োজন হতে পারে apparent
আন্দ্রে লাসজলো

68

আমি আমার ম্যাক একই সমস্যা ছিল। আমি যখন $HOSTNAMEটার্মিনাল থেকে আমার পিনটি দিয়েছিলাম তখন এটি আমি খুঁজে পেয়েছি এবং এটি ফিরে আসবে ping: cannot resolve myHostName: Unknown host

ঠিক করতে:

  1. কি echo $HOSTNAMEআপনার টার্মিন্যালে।
  2. যাই হোক না কেন এটা দেখায় (বলুন দেয় হোস্টনাম myHostName), এটা ping চেষ্টা করুন: ping myHostName। যদি এটি ফিরে আসে ping: cannot resolve myHostName: Unknown hostতবে আপনার /etc/hostsফাইলে একটি এন্ট্রি যুক্ত করুন।
  3. সেই সম্পাদনা /etc/hostsফাইলটির জন্য এবং নিম্নলিখিতগুলি যুক্ত করুন:

    127.0.0.1 myHostName

আশা করি এটা সাহায্য করবে.


আশ্চর্য হোন যে এটি কিছু মেশিনে বাক্সের বাইরে কীভাবে কাজ করছে এবং
স্কাইনেট

16

java.net. অজানাহোস্টএক্সেপশন: হোস্টটি অমীমাংসিত:

হোস্টের আইপি ঠিকানা নির্ধারণ করা যায়নি তা বোঝাতে ছুড়ে দেওয়া হয়েছিল।

আপনি যখন কোনও বৈধ ওয়াইফাইয়ের সাথে সংযুক্ত থাকেন তবে রাউটার ইন্টারনেট গ্রহণ না করে এই ব্যতিক্রমটিও উত্থাপিত হয়। এটি পুনরুত্পাদন করা খুব সহজ:

  1. একটি বৈধ ওয়াইফাই সংযোগ করুন
  2. রাউটারটি প্লাগ-ইন করার সময় এখন রাউটার থেকে কেবলটি সরিয়ে ফেলুন

আপনি এই ত্রুটি পর্যবেক্ষণ করবেন !!

আপনি সত্যিই এটি সমাধান করতে পারবেন না, আপনি কেবল ব্যবহারকারীকে করুণাময় জানিয়ে দিতে পারেন। (এমন কিছু - "সংযোগ স্থাপনে অক্ষম")


1
এটি বলা আরও সাধারণ হবে যে হোস্টটি ডিএনএসে পাওয়া যায় না বা যখন ডিএনএস নিজেই খুঁজে পাওয়া যায় না, যেমন কোনও নেটওয়ার্ক সংযোগের কারণে, বা কোনও ভুল কনফিগারেশনের জন্য ব্যতিক্রম উত্থাপিত হয় say
মারকুইস অফ লরেন

তাহলে আপনি এই সমস্যাটি কীভাবে সমাধান করবেন?
কুকডেড

2
আপনি সত্যিই এটিকে সমাধান করতে পারবেন না, আপনি কেবল ব্যবহারকারীকে করুণার সাথে জানাতে পারেন। (এর মতো কিছু - "সংযোগ স্থাপনে অক্ষম")
অ্যাশ

বিদ্যালয়ের নেটওয়ার্কে এই সমস্যাটি থাকার অর্থ কী তবে এটি বাড়িতে আমার ব্যক্তিগত সংযোগ নয়?
সোডিয়ামনেট্রেট

@ সোডিয়ামনিট্রেট হতে পারে আপনার স্কুল নেটওয়ার্কের জন্য প্রথমে কিছু আইডি / পিডব্লিউডি অনুমোদন প্রয়োজন .. ব্রাউজারে কোনও ওয়েব ইউআরএল খোলার চেষ্টা করুন এবং তা সঠিকভাবে প্রদর্শিত হয়েছে কিনা তা দেখুন
অ্যাশ

7

এটি প্রশ্নের সাথে সুনির্দিষ্ট নয়, তবে আমি যখন উল্লিখিত গুগলিং ছিল তখন এই প্রশ্নটি প্রকাশিত হয়েছিল 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(":")জন্য সেমিকোলন ব্যবহার করে প্রাপ্ত হয়েছিল HOST। এই বাম সাদা অংশ, এবং UnknownHostExceptionহোয়াইটস্পেস সহ হোস্ট হিসাবে কারণ বৈধ হোস্ট নয়। একটি এরকম host = host.trim()উপর String hostদ্ব্যর্থক ইস্যু সমাধান।


এটা আমার সমস্যা ছিল।
স্টার্লিং ডিয়াজ

1
ধন্যবাদ - এটি আমাকে বাঁচিয়েছে। আমার ক্ষেত্রে স্ট্রিং হোস্টটি ফাংশনে পাস করার জন্য একটি \ n প্রত্যয় ছিল, তাই .trim()এটির উপর চালানো আমার পক্ষে এটি স্থির হয়ে গেল!
রায়জিনজ

1
ধন্যবাদ, আমি বুঝতে না পারছি সমস্যাটি কী তা বুঝতে চেষ্টা করে অনেক বেশি সময় ব্যয় করেছি যে আমি দুটি পৃথক আইপি ঠিকানার মধ্যে একটি ফাঁকা স্থান টাইপ করেছি a
স্যান্ডোভাল ০৯৯২

5

এটি বিভিন্ন কারণে হতে পারে

1) আপনার ভিপিএন সংযুক্ত রয়েছে কিনা তা পরীক্ষা করে দেখুন, হ্যাঁ কখনও কখনও আপনি এই ত্রুটিটি পেতে পারেন

"আপনার হোস্টনাম, লোকালহোস্ট একটি লুপব্যাক ঠিকানার সাথে সমাধান করেছে: 127.0.0.1; পরিবর্তে 10.xxxx.1.193 ব্যবহার করে (ইন্টারফেসে cscotun0 তে)"

2) আপনার O HOSTNAME পরীক্ষা করুন

3) কমান্ডলাইনে O HOSTNAME- এ পিং করার চেষ্টা করুন এবং এটি যদি কাজ না করে, আপনার স্থানীয় হোস্টকে পিংসে প্রতিক্রিয়া জানানোর জন্য সিস্টেম সেটিংসটিকে ঝাঁকুনি দিন


5

আপনার হোস্টের নাম অনুপস্থিত। সার্ভারের সাথে সংযোগ স্থাপন করার সময় জেবস এই পরিবেশ পরিবর্তনশীল (O 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);

ট্রিম () ইউআরএল


কোনও ফাঁকা জায়গা না দিয়ে একটি হার্ড-কোডিং স্ট্রিং ছাঁটাই করার কোনও মানে হয় না।
ব্লেক ম্যাকব্রাইড

1

আপনার স্থানীয় কম্পিউটারের সাথে সংযোগ স্থাপনের চেষ্টা করা হচ্ছে instead পরিবর্তে বা সম্ভবত হোস্টনাম "লোকালহোস্ট" দিয়ে :: / - সর্বশেষটি আইপিভি 6


1

আপনি সংযোগ করতে চান দয়া করে আইপি ঠিকানায় SPark_LOCAL_IP এনভায়রনমেন্ট ভেরিয়েবল সেট করার চেষ্টা করুন (লোকালহোস্ট অর্থাৎ আপনার নিজের আইপি ঠিকানা হতে পারে)। যেমন

$ export SPARK_LOCAL_IP=182.95.208.152

এইভাবে আপনাকে বিদ্যমান লিনাক্স সেটিংস পরিবর্তন করতে হবে না। আমার জন্য কাজ করেছেন, আশা আপনাকেও সহায়তা করবে।


0

আপনার পরিষেবাটি বিভিন্ন পরিষেবা সরবরাহকারীর সাথে বিভিন্ন ওয়াইফাই সংযোগের সাথে সংযুক্ত করুন । আমি সঠিক সমস্যাটি জানি না তবে আমি কোনও নির্দিষ্ট পরিষেবা সরবরাহকারীর সাথে সার্ভারের সাথে সংযোগ স্থাপন করতে পারিনি তবে আমি যখন অন্য পরিষেবা সরবরাহকারীর সাথে সংযুক্ত হয়েছি তখন এটি কাজ করে। তাই চেষ্টা করুন!


0

আমার লিঙ্কটির ফর্ম্যাটটি কোনও এক্সএমএল ফাইল ধরার সময় আমার অ্যান্ড্রয়েড অ্যাপে এই সমস্যাটি ছিল, আমি পুরো url দিয়ে পুনরায় ফর্ম্যাট করেছি এবং এটি কার্যকর হয়েছে।


0

আপনি যদি এখানে থাকেন তবে আপনার এমুলেটর আপনাকে সেই ব্যতিক্রম দেয়, আপনার অ্যান্ড্রয়েড এমুলেটারে সরঞ্জামগুলি> এভিডি ম্যানেজারে যান এবং আপনার এমুলেটরকে কোল্ড বুট করুন।


-1

যদি আপনার / ইত্যাদি / লোকালহোস্ট ফাইলগুলির নীচে প্রবেশ থাকে: নীচে হোস্টনাম এন্ট্রি যুক্ত করুন:

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

এটি সমস্যার সমাধান করা উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.