ホームページ  >  記事  >  Java  >  修正方法: Java ネットワーク エラー: ホスト名を解決できません

修正方法: Java ネットワーク エラー: ホスト名を解決できません

WBOY
WBOYオリジナル
2023-08-19 08:29:353232ブラウズ

修正方法: Java ネットワーク エラー: ホスト名を解決できません

解決方法: Java ネットワーク エラー: ホスト名を解決できません

Java をネットワーク プログラミングに使用すると、一般的なエラーが発生することがあります: ホスト名を解決できません名前。このエラーは通常、存在しないホスト アドレスまたは解決できないドメイン名に接続しようとしたときに発生します。この記事では、この問題を解決する方法を説明し、いくつかのコード例を示します。

1. ネットワーク接続を確認します
まず、ネットワーク接続が正常かどうかを確認する必要があります。 ping コマンドを使用して、ホスト アドレスまたはドメイン名が到達可能かどうかを確認できます。コマンド ラインに次のコマンドを入力します。

ping www.example.com
応答を受信できれば、ネットワーク接続は正常です。応答がない場合は、ネットワーク環境に問題がある可能性がありますので、他のアドレスに接続してみて、ネットワークに問題があるかどうかを確認してください。

2. ホストアドレスまたはドメイン名が正しいか確認してください
ホスト名が解決できないエラーが発生した場合は、まず入力したホストアドレスまたはドメイン名が正しいか確認してください。ブラウザにアドレスを入力すると確認できますが、アクセスできない場合は入力したアドレスが間違っています。

3. DNS 設定を確認します
ネットワーク接続が正常で、ホスト アドレスまたはドメイン名が正しい場合は、DNS 設定に問題がある可能性が高くなります。 DNS (Domain Name System) は、ドメイン名を IP アドレスに変換するために使用されます。 Java はシステムのデフォルトの DNS 設定を使用します。次のコードを使用して DNS 設定を確認および変更できます:

import java.net.InetAddress;
import java.net.UnknownHostException;

public class DNSExample {
    public static void main(String[] args) {
        try {
            // 获取系统默认的DNS设置
            InetAddress dns = InetAddress.getByName("www.example.com");
            System.out.println("System DNS: " + dns.getHostAddress());

            // 修改DNS设置
            InetAddress alternativeDNS = InetAddress.getByName("8.8.8.8");
            System.setProperty("sun.net.spi.nameservice.provider.1", "dns,sun");
            System.setProperty("sun.net.spi.nameservice.nameservers", alternativeDNS.getHostAddress());
            
            // 再次获取DNS设置并打印
            dns = InetAddress.getByName("www.example.com");
            System.out.println("Modified DNS: " + dns.getHostAddress());
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}

上記のコードを実行すると、システムのデフォルトの DNS 設定と変更された DNS 設定が出力されます。変更した DNS 設定でホスト名を解決できれば、問題は解決しています。

4. プロキシ サーバーを使用する
場合によっては、ネットワークにプロキシ サーバーがあり、Java プログラムにプロキシが設定されていないことが、ホスト名を解決できない問題の原因である可能性があります。次のコードを使用して Java のプロキシ サーバーを構成できます。

import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import java.net.URLConnection;

public class ProxyExample {
    public static void main(String[] args) {
        try {
            // 配置代理服务器
            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy.example.com", 8080));
            URL url = new URL("http://www.example.com");
            
            // 打开连接
            URLConnection conn = url.openConnection(proxy);
            conn.connect();
            System.out.println("Connected!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

上記のコードでは、プロキシ サーバーを使用してホストとの接続を確立します。コード内のプロキシ サーバーのアドレスとポート番号を独自のプロキシ サーバー情報に置き換える必要があります。

概要:
Java プログラムでホスト名を解決できないネットワーク エラーが発生した場合は、まずネットワーク接続が正常かどうかを確認し、ホスト アドレスまたはドメイン名が正しいかどうかを確認します。問題がない場合は、DNS 設定を確認して変更するか、プロキシ サーバーを構成して問題を解決してください。この記事で説明した解決策とコード例がこの問題の解決に役立つことを願っています。

以上が修正方法: Java ネットワーク エラー: ホスト名を解決できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。