在一篇关于生命科学标识符 (see LSID Tester,用于测试生命科学标识符解析服务的工具),罗德里克·DM·佩奇博士写道:
给定 LSID urn:lsid**:ubio.org**:namebank:11815,在 DNS 中查询 SRV 记录_lsid._tcp.ubio.org返回animalia.ubio.org:80 作为 ubio.org LSID 服务的位置。
我了解到我可以使用以下命令将 _lsid._tcp.ubio.org 链接到animalia.ubio.org:80hostUNIX 上的命令:
host -t srv _lsid._tcp.ubio.org
_lsid._tcp.ubio.org has SRV record 1 0 80 ANIMALIA.ubio.org
我如何使用 Java J2SE API 来做这个“DNS”事情(没有任何外部 java 库,我想要一个轻量级的解决方案)?
谢谢
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”的字符串枚举。空格分隔的字段按顺序排列:
- priority
- weight
- port
- server
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)