我正在尝试让我的 Android 2.3.5 手机在我的 LAN 网络上列出所有可能的 Raspberry Pi(运行 Raspbian)。网络上还有其他设备,所以我想用伪代码来做这件事的方法是:
foreach ip 0..254
hn = gethostname("192.168.0." + ip);
if(hn == "rpi*") {
do_something();
}
我已经成功设置了 RPi 的主机名:
sudo hostname rpi0
我的路由器显示 RPi 已连接到192.168.0.4
. 我可以从我的 Win7 PC 中ping
获取 ip 地址192.168.0.4
,但是我无法ping
获取主机名、nslookup
ip 或主机名。
当我在手机上尝试使用 java 中的以下代码时,它声称它是可访问的,但是 get hostname 行返回的是 ip 地址而不是主机名,我认为如果找不到主机名,它应该这样做:
InetAddress inetAddress = InetAddress.getByAddress(ipAddress);
Log.d(TAG, inetAddress.isReachable(5000));
Log.d(TAG, inetAddress.getHostName());
有谁知道我做错了什么?这甚至是在 LAN 上查找所有一种类型的设备的明智方法吗?如果是这样,我相当确定我的 android 方面是正确的,但我对 LAN 知之甚少。
PS对不起,如果这个问题很长而且令人费解,我想包括我尝试过的所有内容。此外,我正在使用声称:
Software version "R36"
Hardware version 2.00
谢谢