InetAddress?

package com.snail.example;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class HostNameExam {

  public static void main(String[] args) {
    try {
      InetAddress addr = InetAddress.getByName("hondou.homedns.org");
      byte[] ipaddr = addr.getAddress();
      dumpIpAddress(ipaddr);
      
      InetAddress whosAddress = InetAddress.getByAddress(ipaddr);
      System.out.println(whosAddress.getHostName());
    } catch (UnknownHostException e) {
      e.printStackTrace();
    }
  }
  
  public static void dumpIpAddress(byte[] bArray){
    for( byte b : bArray ){
      System.out.print((int)b & 0xff);
      System.out.print(" ");
    }
    System.out.print("\n");
  }
}

実行結果

125 197 203 161 
fl1-125-197-203-161.tky.mesh.ad.jp

国際化ドメイン対応(Java6〜)

Java 6 から導入された java.net.IDN で、国際化ドメイン名(Unicode)を通常のドメイン名に変換することができる。

package com.snail.example;

import java.net.IDN;
import java.net.InetAddress;
import java.net.UnknownHostException;

public class HostNameExam {

  /**
   * @param args
   */
  public static void main(String[] args) {
    try {
      String asciiUrl = IDN.toASCII("日本語.jp");
      System.out.println(asciiUrl);
      InetAddress addr = InetAddress.getByName(asciiUrl);
      byte[] ipaddr = addr.getAddress();
      dumpIpAddress(ipaddr);
      
      InetAddress whosAddress = InetAddress.getByAddress(ipaddr);
      System.out.println(whosAddress.getHostName());
    } catch (UnknownHostException e) {
      e.printStackTrace();
    }
  }
  
  public static void dumpIpAddress(byte[] bArray){
    for( byte b : bArray ){
      System.out.print((int)b & 0xff);
      System.out.print(" ");
    }
    System.out.print("\n");
  }
}

実行結果

xn--wgv71a119e.jp
202 11 16 167 
jprs.jp

Java#JavaSE


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   sitemap
Last-modified: 2009-12-06 (日) 20:40:57 (2560d)
ISBN10
ISBN13
9784061426061