こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

javaでドメイン名を取得したい

お世話になります。

javaでネットワークプログラムを書いているのですがドメイン名はどのようにしたら取得できるのでしょうか?
URLからホスト名の文字列を取得した後、ドメイン部分を取り出したいのですが、URLのホスト名は必ずしもホスト名ではなく、IPアドレスだったり、ドメイン名だったりします。(このサイトもホスト名ではなくドメイン名になっていますよね)
IPアドレスは無視するとして、ホスト名またはドメイン名が指定された時にドメイン名を取得したいのです。
例)www.yahoo.co.jp → yahoo.co.jp
okwave.jp → okwave.jp

何か良いAPIが無いものかと探してみましたが見つけられませんでした。
トップレベル、セカンドレベルドメインのリストを取得できるならそこからドメイン名を導き出すことができるのでリストの取得方法でも構いません。

よろしくお願いします。

投稿日時 - 2012-11-29 18:06:20

QNo.7821697

すぐに回答ほしいです

質問者が選んだベストアンサー

GoogleのGuavaにあるInternetDomainNameクラスを使えば行けますよ。
以下サンプル。


import java.net.*;
import com.google.common.net.*;

public class Main{

public static void main(String[] args) throws Exception {
URL url = new URL("http://www.yahoo.co.jp");
System.out.println(InternetDomainName.from(url.getHost()).topPrivateDomain().name());
}
}

参考URL:http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/net/InternetDomainName.html

投稿日時 - 2012-11-29 20:50:27

お礼

早速のご回答ありがとうございます。
まさに欲しい情報でした。
サンプルを試してみましたが期待通りの動作でした。

投稿日時 - 2012-11-30 10:13:51

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問