android解析ip地址,android – 如何从IP地址解析网络主机名
我正在研究基于wifi的聊天引擎,我能夠通過跟隨this鏈接檢索連接到當前wifi網絡的主機列表,現在獲得了具有ip地址的設備列表但我需要來自ip地址的主機名并嘗試以下
InetAddress inetAddr;
try {
inetAddr = InetAddress.getByName(host.hostname);
String hostname = inetAddr.getHostName();
String canonicalHostname = inetAddr.getCanonicalHostName();
holder.computerName.setText("Canonical : "+host.hostname);
} catch (Exception e) {
e.printStackTrace();
}
這里主機名和規范主機名都顯示ip地址而不是主機名.
請幫我解決這個問題.
解決方法:
我想你可以這樣做:
try {
Log.d("ReverseDNS", "Reverse DNS for 8.8.8.8 is: " + InetAddress.getByName("8.8.8.8").getHostName());
} catch (UnknownHostException e) {
Log.e("ReverseDNS", "Oh no, 8.8.8.8 has no reverse DNS record!");
}
一些額外的東西:
>考慮到這是一個可能需要很長時間的操作(理解為長時間幾秒),因此絕對建議在Thread或AsyncTask中完成.
>除響應時間外,這是一個網絡操作,因此您需要在UI線程之外執行此操作.
>還要記住,每個主機都有一個關聯的IP地址,但并非每個IP地址都有一個反向主機,因此操作可能會失敗,您也需要處理它.
>您要查詢的DNS服務器是您的提供商之一(或者如果您計劃在不同客戶端中運行此服務提供商,則為客戶提供商).這意味著并非每個結果都是一樣的.例如,您的DNS服務器可能無法解析IP的反向主機,而其他DNS服務器可能無法解析.
標簽:android-networking,android,ip,android-wifi,hostname
來源: https://codeday.me/bug/20191002/1842491.html
總結
以上是生活随笔為你收集整理的android解析ip地址,android – 如何从IP地址解析网络主机名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android自定义optionmenu
- 下一篇: nexus 6p Android SDK