6

Javaでドメインが利用可能かどうかを確認する比較的簡単な方法はありますか?

確実な方法が必要なので、接続できるかどうかを確認するだけでは不十分です。

4

4 に答える 4

6

ドメインの可用性は、whois クライアントを持っているかどうかによって異なります。Java での whois クライアントの実装へのリンクを次に示します。

Java Whois クライアント

結果を解析する必要があります。使用するwhoisサーバーによっては、返される形式が異なる場合があります。最善の方法は、OpenSRS などの商用の whois/登録サービスに料金を支払うことです。彼らには、登録済みリセラーとして使用できる広範な API があります。API ドキュメントは次のとおりです。

http://opensrs.com/resources/documentation/opensrs_xmlapi.pdf

HTH、

-aj

于 2010-02-03T21:53:48.997 に答える
4

ここには、優れた Whois Java クライアントがあります。

https://github.com/ethauvin/Whois

コマンドラインまたはインターフェイスから直接実行できます。

// don't include the www        
Whois.main(new String[] {"skytouch.com"});
于 2010-02-03T22:05:05.707 に答える
1

別の解決策は、Apache Commons lib を使用することです。簡単な例:

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

public String getWhois(String domainName){

    WhoisClient whois = new WhoisClient();

    whois.setConnectTimeout(10000);
    whois.setDefaultTimeout(10000);

    whois.connect("whois.verisign-grs.com", 43);

    String domainWhois = whois.query(domainName);

    whois.disconnect();

    return domainWhois;
}

応答が「一致なし」に等しいかどうかを確認します。Whois サーバー、タイムアウトの長さ、および可用性応答なしは拡張子によって異なるため、追加のコレクションを用意する必要があります。

Whois サーバーのリストは次の場所にあります。

クエリを同時に実行しようとすると、「構成されたレート制限に達しました」というwhois応答が確実に返されます。またはコード内の明示的な例外であるため、スリープ後にクエリを繰り返す必要があります。

于 2016-03-13T16:09:25.290 に答える
-1

ドメインで DNS ルックアップを実行するのが最も簡単な解決策です。利用可能なすべてのドメインには DNS レコードがなく、ほとんどのレジストラは登録時にデフォルトの DNS エントリを割り当てます。

WHOIS ルックアップは、特に ISP の背後で (広告でいっぱいの「ドメインが見つかりません」ページで) 自身のサーバーを偽装して、欠落しているドメイン名を探す最も信頼できるソリューションになります。

于 2010-02-03T21:57:31.903 に答える