Shammer's Philosophy

My private adversaria

Java版簡易nslookup?

Javaでnslookupを書いてみる。とは言っても、実態はjava.net.InetAddressのサンプルといったところだが。

import java.net.*;

public class NSLookUpJavaEdition
{
    public static void main(String[]args)
    {
        if( args.length != 1 ){
            System.out.println("Usage: java NSLookUpJavaEdition ");
        }
        else {
            try {
                InetAddress[] addressList = InetAddress.getAllByName(args[0]);
                System.out.println( args[0] + ":");
                System.out.println("\t" + addressList[0].getHostName());
                for( int i = 0 ; i < addressList.length ; i++ ){
                    System.out.println("\t" + addressList[i].getHostAddress());
                }
            }
            catch( UnknownHostException e ){
                System.err.println("Unable to find address for " + args[0]);
            }
        }
    }
}

java.net.InetAddressの、getAllByNameメソッドを使用すれば簡単にホスト名やIPアドレスを取得できる。
InetAddress.getLocalHost().getHostName() で、メソッドを実行しているマシンのホスト名を、
InetAddress.getLocalHost().getHostAddress()で、メソッドを実行しているマシンのIPアドレスも取得可能。