Roderic DM Page博士在有关生命科学标识符(请参阅LSID Tester, a tool for testing Life Science Identifier resolution services)的论文中写道:
给定LSID urn:lsid **:ubio.org **:namebank:11815,在DNS中查询_lsid._tcp的SRV记录。 ubio.org 返回animalia.ubio.org:80作为ubio.org LSID服务的位置。
我了解到可以使用Unix上的 host 命令将_lsid._tcp.ubio.org链接到animalia.ubio.org:80:
host -t srv _lsid._tcp.ubio.org
_lsid._tcp.ubio.org has SRV record 1 0 80 ANIMALIA.ubio.org
如何使用Java J2SE API(没有任何外部Java库,我想要一个轻量级的解决方案)来完成“DNS”操作?
谢谢
最佳答案
JNDI DNS提供程序可以查找SRV记录。您需要执行以下操作:
Hashtable env = new Hashtable();
env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
env.put("java.naming.provider.url", "dns:");
DirContext ctx = new InitialDirContext(env);
Attributes attrs = ctx.getAttributes("_lsid._tcp.ubio.org", new String[] { "SRV" });
返回的属性是一个字符串枚举,看起来像“1 0 80 ANIMALIA.ubio.org”。以空格分隔的字段按顺序排列:
关于java - 查询DNS服务记录以查找主机名和TCP/IP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/738750/