Javaでドメイン名を取得する方法

このQ&Aのポイント
  • Javaでネットワークプログラムを書く際に、URLからドメイン名を取得する方法を教えてください。
  • URLのホスト名は必ずしもドメイン名ではなく、IPアドレスも含まれることがあります。ホスト名またはドメイン名が指定された場合に、ドメイン名のみを取り出す方法を知りたいです。
  • APIの利用ではなく、トップレベルドメインやセカンドレベルドメインのリストを取得して、そこからドメイン名を導き出す方法でも構いません。
回答を見る
  • ベストアンサー

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

お世話になります。 javaでネットワークプログラムを書いているのですがドメイン名はどのようにしたら取得できるのでしょうか? URLからホスト名の文字列を取得した後、ドメイン部分を取り出したいのですが、URLのホスト名は必ずしもホスト名ではなく、IPアドレスだったり、ドメイン名だったりします。(このサイトもホスト名ではなくドメイン名になっていますよね) IPアドレスは無視するとして、ホスト名またはドメイン名が指定された時にドメイン名を取得したいのです。 例)www.yahoo.co.jp → yahoo.co.jp okwave.jp → okwave.jp 何か良いAPIが無いものかと探してみましたが見つけられませんでした。 トップレベル、セカンドレベルドメインのリストを取得できるならそこからドメイン名を導き出すことができるのでリストの取得方法でも構いません。 よろしくお願いします。

  • Java
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

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
miruha2011
質問者

お礼

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

関連するQ&A

  • ドメイン取得と、ホスト名 の結びつけ

    さくらのVPSサーバーをレンタルしました。 -------- IPアドレス : xxx.xxx.xxx.xxx ホスト名 : wwwXXXXX.sakura.ne.jp/ -------- URLをもらっています。 「sakura.ne.jp」 ではなく、独自ドメインが欲しいです。 例 www.test12345.jp お名前.com などでドメインが買えると思いますが、 そこから仮に、「www.test12345.jp 」を取得したとして、 上記の 「http://wwwXXXXX.sakura.ne.jp/」 に紐付けることは可能なのでしょうか。 紐付けという言葉が適切かわかりませんが、要点は さくらのホスト名を新しく買ったドメインに変えたい、ということです。 初歩的な質問で恐縮ですが、 どなたかご教示頂けますと幸いです。

  • ネットワーク上のPCのIPとホスト名を取得

    早速ですが、 ネットワーク上のPCのIPとホスト名を取得したいのですが、APIかコマンドから取得できるでしょうか? (できればAPI) 1.IPからホスト名取得 2.ホスト名からIPアドレスの取得 [環境] windows2000 VB6.0 すみません。教えてください。

  • ドメイン名の取得について教えて下さい。

    ドメイン名を取得したいと思っているのですが、「http://」の後に、「www.」が付かないドメイン名が欲しいのです(「http://○○○.com」というような)が、どうやったら取得できますでしょうか? okwaveさんもwww.が付かないURLですが、独自のサーバーをたてないと無理なのでしょうか? あまり詳しくないので、書いてる事が誤っているかもしれませんが、詳しい方いらっしゃいましたら教えて頂けると嬉しいです。 宜しく願いします。

  • ドメイン名の取得

    自作(する予定)のサーバーにIPアドレスではなくドメイン名でアクセスしたいのですが、 ドメインの取得をしてくれるサイトはどこも有料のサイトばかりです。 そこで、そのようなサイトに頼ることなく自分でドメインを取得したいのですが、方法が分かりません。 何かいい方法は有りますか?

  • ドメインを取得したのですが…

    プロバイダのHPスペースにHPを作り、yahooドメインでドメインを借りました。 元々のプロバイダのアドレスは www.プロバイダ名.ne.jp/○○/ で、新しく取得したドメインは ○○.co.jp とします。 (HPのデータ自体はwww.プロバイダ名.ne.jp/○○/ にあります) ○○.co.jp はもう動いてて、そのURLを入れるときちんとページが表示されます。 が、www.プロバイダ名.ne.jp/○○/ を入れても同じものが表示されます。 www.プロバイダ名.ne.jp/○○/のアドレスでは表示されないようにしたいのですが、どのように設定すれば良いのでしょうか。 .htaccessでリダイレクトさせれば良いのでしょうか…?

  • ホスト名、ドメイン名について

    リナックスで自宅サーバーを立ち上げようと思い、 DDNSサービスに登録し、DICEの設定をしようとしているのですが、 ホスト名の項目と、ドメイン名の項目に、どのように入力していいのか 迷っています。 ちなみに、サブドメインをつけて、www.○○○.△△△△△.comというようなものを取得しました。 このようなアドレスの場合、ホスト名、ドメイン名はどのようになるのでしょうか?

  • ドメイン取得について

    独自ドメイン取得全般についてお尋ねします。 1.業者からドメインを購入した場合、そのドメインは誰のものになるのでしょうか?業者のものでしょうか?それとも購入した人のものでしょうか?以前レンタルサーバをレンタルする際にドメイン取得の代行をしてもらったのですが、契約が切れたので他のサイトにドメインを移行しようとしたのですが、ドメインがそのレンタルホストのものになっていて帰ってきませんでした。 2.ドメインを業者から購入した後は、それをIPアドレスに割り当てる必要があると思うのですが、その作業はどのようにして行うのでしょうか?

  • 第3レベルドメインのみ同じのドメイン名は取れる?

    第3レベルドメインのみ同じのドメイン名は取れる? あるドメイン名、仮にabcd.comというドメイン名を持っているのですが、 他の人、会社が、 abcd.com.cn abcd.cn などを取得することは法律上問題ないのでしょうか? トップレベル、第2レベルのドメインだけが違うドメイン名です。 最近、そのような事が起こりまして、中国の企業なのです。 このような紛争の処理手順はどうなるのでしょうか? よろしくお願いいたします。

  • ドメイン取得について

    ドメインの取得とIPアドレスについて教えてください。 「.com」ドメインをPSIジャパンで取得するとき、 なにか必要なものはありますか? 事前にグローバルIPアドレスを取得する必要はありますか? そのグローバルIPアドレスには、DNSサーバを割り当てるのですか? httpサーバに割り当てる訳ではありませんよね?

  • ドメイン・・・

    http://otasuke.goo-net.com/qa3875903.html http://otasuke.goo-net.com/qa3827097.html どちらもこちらの知恵袋で回答いただきました。ご協力感謝します。 ですが, 勉強を進めていくうちにホスト名とドメイン名がごちゃまぜになりある本ではホスト名(ドメイン名)と書いてありました。。。なんらかの違いがあるのは分かるのですがどうもパッとしません・・・ http://dailynews.yahoo.co.jp/fc/local/ だとどうしてドメインがyahoo.co.jp でdailynews.yahoo.co.jp がホスト名という扱いなのでしょう?dailynews.yahoo.co.jp がドメインでもいいような気がします。。。 どうもこの二つの線引きが難しいです・・・解説お願いできないでしょうか? あと, このサイトで「http://ip.bb-now.com/」www.yahoo.co.jpのIPとyahoo.co.jpのIPが違うのに同じページが表示されました。wwwの意味は現在廃れているようですがこれはどのような処理の下同じページが表示されたのでしょうか?

専門家に質問してみよう