ホスト名とIPアドレス

ホスト名とIPアドレスを表示

自分が使用中のコンピュータの名前をホスト名といいます。コンピュータ名、マシン名などと呼ばれることもあります。一方数値で表現された IPアドレスもあります。この2つを調べるプログラムです。

プログラム名 MyHost.java

/** ホスト名とIPアドレスを表示する */
import java.net.*;
public class MyHost {
    public static void main( String[] args ) {
        try {
            InetAddress myHost = InetAddress.getLocalHost();
            System.out.println( "Host Name:" + myHost.getHostName() );
            System.out.println( "IP Address:" + myHost.getHostAddress() );
        }
        catch( UnknownHostException e ){
            System.err.println( e );
        }
    }
}

動作結果

$ java MyHost
Host Name:vineXX
IP Address:10.10.20.XX

他のホストについて調べる

引数に指定されたホスト名または IPアドレスからホスト名とIPアドレスを調べて表示するプログラムです。つまりホスト名からIPアドレスを調べる、またその逆をやります。ネットワークの中ではこの作業は頻繁に必要になります。

プログラム名 HostInfo.java

/** 他のホストについて調べる */
import java.net.*;
public class HostInfo {
    public static void main( String[] args ) {
        try {
            InetAddress host;
            host = InetAddress.getByName( args[0] );
            System.out.println( "Host Name:" + host.getHostName() );
            System.out.println( "IP Address:" + host.getHostAddress() );
        }
        catch( ArrayIndexOutOfBoundsException e ) {
            System.err.println("アドレスまたはホスト名を指定してください");
            System.err.println("Usage:");
            System.err.println(" java Hostinfo hoge.exsample.jp");
            System.err.println(" java Hostinfo hoge");
            System.err.println(" java Hostinfo 10.10.20.1");
        }
        catch( UnknownHostException e ) {
            System.err.println( "Host not found" );
            System.err.println( e );
        }
    }
}

動作結果

$ java HostInfo vineXX
Host Name:vineXX
IP Address:10.10.20.XX

クラス InetAddress

java.net.InetAddress

IP (Internet Protocol) アドレスを表すクラスです。 IP アドレスは、IP で使用される 32 ビットまたは 128 ビットの符号なしの数字。 人間のために 8 ビット4個 または 8 ビット16個で表されます。

TCP/IPのネットワークでは、全ての機械(正確にはネットワークの出入口)にこのIPアドレスとホスト名(ホストネーム)と呼ばれる名前がついています。

名前はドメイン内では www とか mail とか vine01 とかの1つの単語で済ませられますが、インターネットにでると、www.st.seiai.ed.jp など、ドメイン名を加えます。これが正式名称( FQDN )です。

getLocalHost

public static InetAddress getLocalHost()

ローカルホストを返します。

getHostName

public String getHostName()

この IP アドレスに対応するホスト名を取得します。

getHostAddress

public String getHostAddress()

テキスト表現の IP アドレス文字列を返します

getByName

public static InetAddress getByName(String host)

指定されたホスト名を持つホストの IP アドレスを取得します。

もくじ

聖愛高等学校
http://www.seiai.ed.jp/
Last Modified