Java でホスト名を取得する

Muhammad Zeeshan 2023年10月12日
  1. Java で InetAddress を使用してホスト名を取得する
  2. Java で InetAddress クラスを使用してホスト名を取得する方法を示す
Java でホスト名を取得する

このチュートリアルでは、JavaAPI を使用して IP アドレスとホスト名を取得する方法を見ていきます。

Java で InetAddress を使用してホスト名を取得する

パッケージ java.net には、現在のマシンの IP アドレスとホスト名を処理するクラス InetAddress が含まれています。

同じクラスの getLocalHost() 関数でシステムの IP アドレスを収集することにより、java.net パッケージの InetAddress クラスの getHostName() を使用して Windows コンピューターのシステム名を取得できます。

セキュリティマネージャがローカルホストのアドレスの取得を許可しない場合、getHostName() は IP アドレスのテキスト表現を配信します。

InetAddress クラスの getLocalHost() メソッドと getByName (String host) メソッドは、それぞれローカルホストとリモートホストを処理します。

構文:

InetAddress inetadd = InetAddress.getLocalHost();

この関数は、Java プログラムが実行されている inetadd ローカルサーバーの InetAddress のインスタンスを作成します。その結果、ローカルホストのアドレスが返されます。

これは、システムからホストの名前を取得し、それを InetAddress に変換することによって行われます。

Java で InetAddress クラスを使用してホスト名を取得する方法を示す

まず、次のライブラリをインポートします。

java.net.InetAddress

簡単な例を使用して、Java でホスト名を取得する方法を示します。

InetAddress inetadd = InetAddress.getLocalHost();

InetAddress メソッドを使用して、Java プログラムが動作する inetadd という名前のローカルサーバー用の InetAddress のインスタンスを作成します。

String name = inetadd.getHostName();

getHostName() メソッドを使用してホスト名を取得し、name という名前の文字列型変数に保存します。

String address = inetadd.getHostAddress();

その後、getHostAddress() メソッドを使用して、ホストアドレスを取得し、address という名前の文字列型変数に保存します。これでローカルまたはサイトのホスト名をアドレスに解決できなかった場合、UnknownHostException がスローされます。

ソースコード:

import java.net.InetAddress;
import java.net.UnknownHostException;
public class HostnameExample {
  public static void main(String[] args) {
    try {
      InetAddress inetadd = InetAddress.getLocalHost();
      String name = inetadd.getHostName();
      String address = inetadd.getHostAddress();
      System.out.println("HostName is : " + name);
      System.out.println("Host Address is: " + address);
    } catch (UnknownHostException u) {
    }
  }
}

出力:

$javac HostnameExample.java
$java -Xmx128M -Xms16M HostnameExample
HostName is : f97aedb6192a
Host Address is: 127.0.0.2
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn