Domanda

C'è un modo in Java per fare una ricerca su Nslookup record SRV?

Ho bisogno di legarsi a Active Directory e vorrebbe utilizzare i record SRV per aiutare a determinare quali degli annunci del cluster sono sotto tensione.

In linea di comando la stringa di ricerca nslookup è: 'nslookup -type = srv _ ldap._tcp.ActiveDirectory nome di dominio'

Grazie.

È stato utile?

Soluzione

Come erickson sottolineato, l'API JNDI ha una provider per DNS utilizzando JNDI , che potete leggere su circa su quel link. Per una query di esempio che lavora il record _ldap._.tcp.mydomain.com, vedere questo codice da Hudson .

Credo che prima di utilizzare il provider DNS, è necessario caricarlo con qualcosa di simile (modificato dal codice Hudson sopra):

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);

da lì, può ottenere il record SRV via qualcosa del tipo:

Attributes attributes = ctx.getAttributes("_ldap._tcp.mydomain.com", new String[]{"SRV"});
Attribute a = attributes.get("SRV");

Sono riuscito con successo ad utilizzare il codice come questo in un paio di progetti per l'integrazione AD molto diretto.

Altri suggerimenti

Non ho mai usato, ma credo che di Java "JNDI" API per servizi di denominazione ha un provider per DNS. Cercare il nome di dominio come DirContext, e quindi esaminare i suoi attributi "SRV".

DirContext ctx = new InitialDirContext();
Attributes attrs = ctx.getAttributes("dns:/y.com", new String[] {"SRV"});

Come ho detto, non ho sperimentato questo, ma spero che vi aiuta ad iniziare.

http://www.dnsjava.org/ e ha fatto il lavoro

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top