Я могу получить все IP-адреса устройства в локальной сети с классом inetaddress. Что мне нужно сделать, это обратный поиск IP-адрес и найти как имя устройства в сети, как: «Macbook Джимми в»Попытка получить имена сетевых устройств с обратными dns в Android
Мой код блока, который способен принести все IP-адреса по локальной сети диапазона:
private ArrayList<String> scanSubNet(String subnet) {
ArrayList<String> hosts = new ArrayList<>();
InetAddress inetAddress;
for (int i = 1; i <= 255; i++) {
try {
inetAddress = InetAddress.getByName(subnet + String.valueOf(i));
if (inetAddress.isReachable(1000)) {
hosts.add(inetAddress.getHostName());
Log.d(TAG, InetAddress.getByAddress(inetAddress.getAddress()).getHostAddress());
Log.d(TAG, InetAddress.getByAddress(inetAddress.getAddress()).getCanonicalHostName());
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
return hosts;
}
И я вызываю свой метод как;
ArrayList<String> subnetList = scanSubNet("192.168.1.");ArrayList<String> subnetList = scanSubNet("192.168.1.");
в Log.d (TAG, я пытаюсь получить имя устройства с обратной СНД. Но обе линии дает мне результат, как IP-адрес (не название-как строка)
Есть ли какой-то шанс на успех его?
с уважением, Эндер.
Согласно исследованию, нет способа получить имя (и) устройства от LocalNetwork DNS-reverse напрямую. Вам нужно будет выполнить рукопожатие с одноранговыми устройствами, такими как общий файл 1 с протоколом Samba. –