سؤال

هل هناك طريقة في Java للقيام بإجراء بحث nslookup على سجلات SRV؟

أحتاج إلى ربط Active Directory وأرغب في استخدام سجلات SRV للمساعدة في تحديد أي من الإعلانات الموجودة في المجموعة مباشرة.

في سطر الأوامر ، تكون سلسلة بحث NSLOOKEUP هي: 'nslookup -type = srv _ ldap._tcp.activedirectory name'

شكرًا.

هل كانت مفيدة؟

المحلول

كما أشار Erickson ، لدى JNDI API مزود DNS باستخدام JNDI, ، والتي يمكنك قراءتها على هذا الرابط. للحصول على عينة عمل استعلام _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");

لقد تمكنت بنجاح من استخدام رمز مثل هذا في مشروعين لتكامل الإعلانات المباشرة للغاية.

نصائح أخرى

لم أستخدمها مطلقًا ، لكنني أعتقد أن جافا "Jndi" API لتسمية خدمات لديها مزود ل DNS. ابحث عن اسم المجال ك DirContext, ، ثم فحص سمات "SRV".

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

كما أقول ، لم أجرب هذا ، لكنني آمل أن يساعدك في البدء.

إستعملت http://www.dnsjava.org/ وقد قامت بالمهمة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top