JavaでSRVレコードのNslookup検索を行う方法はありますか?
Active Directoryにバインドする必要があり、SRVレコードを使用して、クラスター内のどのADが稼働しているかを判断するのに役立てたいと思います。
コマンドラインでのnslookup検索文字列は次のとおりです。'nslookup-type = srv_ldap._tcp.ActiveDirectoryドメイン名'
ありがとう。
JavaでSRVレコードのNslookup検索を行う方法はありますか?
Active Directoryにバインドする必要があり、SRVレコードを使用して、クラスター内のどのADが稼働しているかを判断するのに役立てたいと思います。
コマンドラインでのnslookup検索文字列は次のとおりです。'nslookup-type = srv_ldap._tcp.ActiveDirectoryドメイン名'
ありがとう。
ericksonが指摘したように、JNDI APIには、JNDIを使用するDNSのプロバイダーがあり、そのリンクで確認できます。_ldap._.tcp.mydomain.com
レコードをクエリする実用的なサンプルについては、Hudsonのこのコードを参照してください。
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");
私は、非常に単純なAD統合のために、いくつかのプロジェクトでこのようなコードを使用することに成功しました。
使用したことはありませんが、Javaのネーミングサービス用の「JNDI」APIにはDNS用のプロバイダーがあると思います。ドメイン名をとしてDirContext
検索し、その「SRV」属性を調べます。
DirContext ctx = new InitialDirContext();
Attributes attrs = ctx.getAttributes("dns:/y.com", new String[] {"SRV"});
私が言うように、私はこれを実験していませんが、それがあなたが始めるのに役立つことを願っています。
私はhttp://www.dnsjava.org/を使用しました、そしてそれは仕事をしました