研究演習(小松原)

Java ソースコード (ファイル名はGetURI.java)

/*IPアドレス→ホスト名 逆引きプログラム
 * GetURI.java
 *   by M. Komatsubara
 * 小松原ゼミ(3年) Javaプログラミング資料
 */
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.net.*;

public class GetURI extends JFrame implements ActionListener{
    
   JLabel prompt = new JLabel("このボックスにIPアドレスを入力");     
   JTextField text = new JTextField("", 15);	
   JTextField text2 = new JTextField("", 15);
   JButton btn = new JButton("Name Resolution");
    /** Creates a new instance of GetURI */
 
//コンストラクタ
   GetURI(String title){
        setTitle(title);
        //ウィンドウの位置と大きさを設定
        setBounds( 200, 100, 300, 150);
 
        //ボタンが押されたときにactionPerformed()メソッドを呼び出せるように
        //登録
        btn.addActionListener(this);

        //GUI部品を貼り付けるパネルを用意
        JPanel p = new JPanel();
      //  GridLayout layout = new GridLayout(3,1,0,5);
      //  p.setLayout(layout);
        p.add(prompt);
        p.add(text);
        p.add(btn);
        p.add(text2);

        //ContentPaneにパネルを貼り付け
        getContentPane().add(p);
    }
    
    //main method
    public static void main(String[] args){
      GetURI inst = new GetURI("Get URI");

        // 終了処理
        inst.addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent e){System.exit(0);}
        });

        //ウィンドウを表示
        inst.setVisible(true);
    }
        
        
    //ボタンが押されたときの処理
    public void actionPerformed(ActionEvent e) {
      byte[] adr= new byte[4];
      long[] ln= new long[4];
      String[] ipstr=new String[4];
      String[] wkstr=new String[2];
      String ipadr;
     
      //テキストボックスの文字列をipadrに代入
      ipadr=text.getText();
      //「.」でデータを分割し、配列ipstrに代入
      ipstr=ipadr.split("\\.");
      //さらに符号なしのbyte型数値として配列adrに代入
      adr[0]=(byte)Long.parseLong(ipstr[0]);
      adr[1]=(byte)Long.parseLong(ipstr[1]);
      adr[2]=(byte)Long.parseLong(ipstr[2]);
      adr[3]=(byte)Long.parseLong(ipstr[3]);

      try{
        // InetAddressクラスは、ホスト名からIPアドレスに変換する逆引きメソッド
        //を持っているので、まずInetAddress型インスタンスを作る
        InetAddress inet= InetAddress.getByAddress(adr);
        //逆引きメソッドgetHostName()を呼び出し、結果をtext2に代入
        text2.setText(inet.getHostName());
      }    
      catch (UnknownHostException ex){
        ex.printStackTrace();
      }
    }  
}


▼研究演習ホームに戻る
▼小松原研究室公開ページ
▼経営学科詳細紹介ページ

 !   Information
ここは,研究演習履修者専用のWebページです.

一般向け研究室ページ: www.osu.ac.jp/~komatsu
講義レポート提出管理システムRepadを公開しました。
軽量,フリーのLMSです。

  (c)2003 M. Komatsubara