[英]Use dnsjava to get hostname from ip address from 192.168.1.1 to 192.168.1.254
我正在嘗試在android應用中使用dnsjava在我的本地wifi網絡中查找設備的主機名。 下面是使用的代碼:
try
{
String ipAddress = "33.1.168.192";
String dnsblDomain = "in-addr.arpa";
Record[] records;
Lookup lookup = new Lookup(ipAddress + "." + dnsblDomain, Type.PTR);
SimpleResolver resolver = new SimpleResolver();
resolver.setAddress(InetAddress.getByName("192.168.1.1"));
lookup.setResolver(resolver);
records = lookup.run();
if(lookup.getResult() == Lookup.SUCCESSFUL)
{
for (int i = 0; i < records.length; i++)
{
if(records[i] instanceof PTRRecord)
{
PTRRecord ptr = (PTRRecord) records[i];
System.out.println("DNS Record: " + records[0].rdataToString());
}
}
} else {
System.out.println("Failed lookup");
}
}
catch(Exception e)
{
System.out.println("Exception: " + e);
}
該代碼來自以下鏈接,並且似乎可以在OP上運行:有什么方法可以發現網絡上的Android設備?
192.168.1.33是我的wifi網絡上的活動設備。 192.168.1.1是路由器IP。 每次代碼都會到達“失敗查找”。
我不確定我哪里出錯了,因為我是dnsJava和Networks的新手。 另一個問題是,在所有254 ip上掃描時,這會產生完美的結果嗎? 我正在考慮在生產中使用此代碼,並且需要確保這一點。
很感謝任何形式的幫助。
反向名稱的PTR記錄未按照您所考慮的順序存儲。 一般而言,對於IP ABCD
您需要解析DCBAin-addr.arpa
,因此您需要顛倒IP組件的順序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.