【发布时间】:2018-10-22 22:54:21
【问题描述】:
我正在寻找一种方法来获取 LAN 上已知主机名的 IP 地址。
我的工作方式是执行网络扫描,扫描从192.168.1.1开始到192.168.1.255,所以我尝试了InetAddress.getHostName(),InetAddress.getCanonicalAddress()但检索到相同的IP地址。
我尝试使用 nslookup 进行扫描。它在 java 编译器中运行良好,但在 android 中是不可能的 ..
我无法测试 dnsjava 库,因为编译标题 by 时出现错误:NoClassDefFoundError,文件 dnsjava-2.1.7.jar 已添加到 libs 目录。
有什么帮助吗? *对不起我的英语。
【问题讨论】:
-
嗯?为什么要扫描任何东西来查找主机名?我想你很困惑。
-
@SamNikzad 我已经检查过了,由于上述错误,第一个答案不起作用。无法处理第二个答案中使用的 Properties 类,无法解析方法 .put()..
-
@GabeSechan 我尝试的第一件事是使用 InetAddress.getbyName([hostname]) 进行搜索,但无论如何它都不起作用。是的,它适用于 google.com、facebook.com 等网站,但主机名未出现在 DHCP 列表中。所以我正在寻找相反的方向,以携带主机名的方式扫描网络。
-
为什么会这样? DHCP!= DNS。 getHostByName 进行 DNS 查找。文档说 IP 地址上的 getHostByName 将返回该地址,并验证它是否为 n 个 IP 地址。我认为您需要准确描述您传入的内容以及您期望的输出内容。要么你对术语感到困惑并且没有很好地解释事情,要么你对互联网技术感到困惑并且试图做一些永远不会奏效的事情。