/*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();
}
}
}
▼研究演習ホームに戻る
▼小松原研究室公開ページ
▼経営学科詳細紹介ページ
|
|