簡體   English   中英

使用dnsjava從IP地址從192.168.1.1到192.168.1.254獲取主機名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM