Sof*_*ath 1 ip android hostname android-networking android-wifi
我工作的基于WiFi聊天引擎,我能够通过跟随着检索连接到当前的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();
}
Run Code Online (Sandbox Code Playgroud)
这里主机名和规范主机名都显示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!");
}
Run Code Online (Sandbox Code Playgroud)
一些额外的东西:
考虑到这是一个可能需要很长时间的操作(长时间理解几秒钟),因此绝对建议在a Thread或a内完成AsyncTask.
除了响应时间,这是一个网络操作,因此您需要在UI线程之外执行此操作.
还要记住,每个主机都有一个关联的IP地址,但并非每个IP地址都有一个反向主机,因此操作可能会失败,您也需要处理它.
您要查询的DNS服务器是您的提供商之一(或者如果您计划在不同客户端中运行此服务提供商,则为客户提供商).这意味着并非每个结果都是一样的.例如,您的DNS服务器可能无法解析IP的反向主机,而其他DNS服务器可能无法解析.
| 归档时间: |
|
| 查看次数: |
4383 次 |
| 最近记录: |