我一直在尝试用 Java 编写代码来进行 DNS 反向查找(从给定的 IP 查找主机名)。
我尝试了以下方法来做到这一点。
InetAddress addr1 = InetAddress.getByName("11.121.5.67");
String host = addr1.getHostName();
byte[] ipAddr = new byte[] {(byte)34, (byte)195, (byte)110, (byte)15};
host = InetAddress.getByAddress(ipAddr);
String hos = host.getCanonicalHostName();
Using org.xbill.DNS Library
lookup = new Lookup(ipaddress,Type.ANY);
Resolver resolver = new SimpleResolver();
lookup.setResolver(resolver);
lookup.setCache(null);
Record[] records = lookup.run();
byte[] ipAddr = new byte[] {(byte)15, (byte)110, (byte)195, (byte)34};
Resolver res = new ExtendedResolver();
Name name = ReverseMap.fromAddress(ipAddr);
int type = Type.PTR;
int dclass = DClass.IN;
Record rec = Record.newRecord(name, type, dclass);
Message query = Message.newQuery(rec);
Message response = res.send(query);
Record[] answers = response.getSectionArray(Section.ANSWER);
但是这些选项都不起作用。我可以使用 FQDN 从 FQDN 获取 IP 地址InetAddress
。但不要与上述任何选项相反。
在我用于进行 DNS 查找之前,我是否应该设置ResolverConfig
或任何其他配置?org.xbill.DNS
基本上,我想做DNSlookup
一个组织级别的网络系统。
我是 Java 和这些库的新手。任何帮助将不胜感激。