2016-12-14 7 views
-5

私はドメインabc.jpを持っています

例:
これが有効であるかどうかをチェックしたいのですが、私はこの例に別のサブレベルドメインを追加できます。どうやってするの?可能であれば、参照としていくつかのJavaコードをアップロードしてください?

ありがとうございましたjavaのサブドメインの有効性を確認する方法は?

+0

この回答に間違いがあります:http://stackoverflow.com/a/5933518/5749あなたのコード例が素晴らしいでしょう! – Pullie

+1

@プリー InetAddressを使用してabc.jpをテストすると、** ok **と表示されます。 しかし、ac.jpを使用すると、** failed **と表示されます。ただし、** ac.jp **が存在します(例:[link](http://www.iuj.ac.jp/)) コード: 'import java.net.InetAddress; import java.net.UnknownHostException; パブリッククラスのテスト{ \tパブリック静的無効メイン(文字列[] args){ \t \t文字列入力= "ac.jp"。 \t \t \t \t試み{ \t \t \tのInetAddress IADDR = InetAddress.getByName(入力)。 \t \t \t System.out.println( "ok"); \t \t}キャッチ(UnknownHostExceptionがのUHE){ \t \t \tのSystem.out.printlnは( "失敗")。 \t \t} \t} \t } ' – Tashley

+0

ああ[OK]をクリックします。私はあなたが何を意味するかを見ます。 Whoisはここであなたにサービスを提供すると思います。なぜなら、あなたはDNSルックアップを行うことができないからです。 – Pullie

答えて

0

あなたの例ac.jpは有効なドメインですが、IP解決可能なドメインではありません。だから、私はwhoisサーバーを提案します。すべてのドメインをチェックする場合は、多数のWhoisサーバーを保持する必要があります。あなただけが日本をすれば、以下のスニペットが働くはずです。

import org.apache.commons.net.whois.*; 

public class Main { 
    public static void main(String[] args) { 
     WhoisClient whois = new WhoisClient(); 
     String whoishost = "whois.jprs.jp"; 
     // String whoishost = "whois.verisign-grs.com"; // for .com domains 
     String domain = "ac.jp"; 
     try { 
      whois.connect(whoishost); 
      String whoisData = whois.query(domain); 
      if (whoisData.toUpperCase().contains("NO MATCH")){ 
       System.out.println("Domain is not registered. According to whoishost: " + whoishost); 
      } 
      else{ 
       System.out.println("Domain is registered. According to whoishost: " + whoishost); 
      } 
     } catch (java.io.IOException ioex) { 
      System.out.println("failed"); 
     } 
    } 
} 
+0

あなたの肯定的な反応をありがとう。もう一つのccTLDをテストする必要があります。それはμです あなたのコードリストによると、この部分が含まれています: 'String whoishost =" whois.verisign-grs.com "; // for .com domains' μドメインの** whoishost **の文字列を知っていますか?そうでない場合は、私がどこでそれを見つけることができるか教えてください。 – Tashley

+0

彼は@タッシリーそれは基本的なGoogleのスキルです。それにいくらか努力する。 http://www.nirsoft.net/whois_servers_list.html – Pullie

+1

ありがとうございます。それは今働く。 – Tashley

0

グアバのInternetDomainNameは、この問題を解決する優れた方法です。

String input = "abc.jp"; 
InternetDomainName domain = InternetDomainName.from(input); 
InternetDomainName subdomain = domain.child("www"); 
subdomain.toString(); // "www.abc.jp"; 

入力ドメインまたはサブドメインが無効な場合はIllegalArgumentExceptionが表示されます。

確認の程度に応じて、domain.isUnderPublicSuffix()などのチェックを行うこともできます。

+0

ドメインを検証しません。 別のccTLDで試してみました。つまり、このドメインが存在しないにもかかわらず、** InternetDomainName {name = qqq.mu} **を生成するのはμ です。 とにかく、私の問題を解決しようとしてくれてありがとう。 – Tashley

+0

さて、私はあなたの質問に誤解しました。私は「有効」を「整形式で有効な文字のみを含む」と解釈した。私はあなたがインターネット上の本当のドメインであることを確認したいと気付かなかった。 – Sam

関連する問題