'nslookup -type = srv'にJavaを使用する
-
01-10-2019 - |
質問
Javaには、SRVレコードでNSLookup検索を行う方法はありますか?
Active Directoryにバインドする必要があり、SRVレコードを使用して、クラスター内の広告のどれがライブであるかを判断するのに役立ちます。
コマンドラインでは、nslookup検索文字列は次のとおりです。
ありがとう。
解決
エリクソンが指摘したように、JNDI APIには JNDIを使用したDNSのプロバイダー, 、そのリンクで読むことができます。作業サンプルの場合はクエリを照会します _ldap._.tcp.mydomain.com
レコード、参照 ハドソンのこのコード.
DNSプロバイダーを利用する前に、このようなものをロードする必要があると思います(上記のHudsonコードから修正):
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.dns.DnsContextFactory");
env.put("java.naming.provider.url", "dns:");
DirContext ctx = new InitialDirContext(env);
そこから、次のようなものを介してSRVレコードを取得できます。
Attributes attributes = ctx.getAttributes("_ldap._tcp.mydomain.com", new String[]{"SRV"});
Attribute a = attributes.get("SRV");
非常に簡単な広告統合のために、いくつかのプロジェクトでこのようなコードを使用することに成功しました。
他のヒント
私はそれを使用したことがありませんが、私はJavaのものだと信じています 「Jndi」API ネーミングサービスには、DNSのプロバイダーがあります。ドメイン名をaとして検索します DirContext
, 、その後、その「SRV」属性を調べます。
DirContext ctx = new InitialDirContext();
Attributes attrs = ctx.getAttributes("dns:/y.com", new String[] {"SRV"});
私が言うように、私はこれを試していませんが、それがあなたが始めるのに役立つことを願っています。
使った http://www.dnsjava.org/ そして、それは仕事をしました
所属していません StackOverflow