我正在編寫一個Java程序,該程序將顯示連接到我的Wifi網絡的設備的名稱和IP地址。加速查找連接到Wifi網絡的設備並獲取設備名稱
我想出了IP地址部分。這裏的代碼:
public static void main(String[] args) throws IOException {
InetAddress localhost = InetAddress.getLocalHost();
// this code assumes IPv4 is used
byte[] ip = localhost.getAddress();
for (int i = 1; i <= 254; i++) {
ip[3] = (byte) i;
InetAddress address = InetAddress.getByAddress(ip);
if (address.isReachable(1000)) {
// machine is turned on and can be pinged
System.out.println(address + "is online");
} else if (!address.getHostAddress().equals(address.getHostName())) {
// machine is known in a DNS lookup
System.out.println(address + "is in a DNS lookup");
} else {
// the host address and host name are equal, meaning the host name could not be resolved
System.out.println(address + " is not online");
}
}
}
此代碼的工作原理,它顯示連接的設備的IP地址。
但也有我面臨兩個問題:
- 我不能獲得連接設備的名稱。我只能得到IP地址。
- 這個程序工作起來非常慢。完成需要254秒。
那麼,如何顯示連接設備的名稱,並有什麼方法來加快這個程序?
任何幫助表示讚賞!
您假定您的網絡是一個/ 24網絡。可能有超過254個節點連接到您的WiFi網絡,具體取決於子網掩碼。 – RealSkeptic
BruceWayne的建議是獲取設備名稱嗎? – afzalex
@afzalex沒有。它沒有工作。你知道一種獲取設備名稱的方法嗎?請幫助我! –