我想讓我的Android 2.3.5手機列出我局域網上所有可能的Raspberry Pis(運行Raspbian)。 有網絡上的其他設備,所以我認爲去這樣做,在僞代碼的方式,爲:看不到LAN設備上的主機名
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());
有誰知道我在做什麼錯?這是一種理想的方式去尋找局域網中所有類型的設備嗎?如果是這樣,我相當肯定我的android方面的東西是正確的,但我不太瞭解局域網。
PS不好意思,如果這個問題很長很複雜,我想包括我曾嘗試過的一切。另外我使用的是維京Superhub聲稱:
Software version "R36"
Hardware version 2.00
感謝