2016-09-21 5 views
6

Я могу получить все 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-адрес (не название-как строка)

Есть ли какой-то шанс на успех его?

с уважением, Эндер.

ответ

2

Я просто делаю это с помощью MACID и отвечаю первым 3digits, который принадлежит производителям.

https://macvendors.com/ Этот сайт также предоставляет api (Post/GET) для разрешения MAC-адреса.

Вместо того чтобы разрешить полное имя MAC, вам необходимо установить одноранговое соединение Handshake.

1

Это, вероятно, происходит из-за маршрутизатором неправильной конфигурации.

в локальной сети, тыс ere не являются важными функциями, которые зависят от успешных обратных запросов DNS, поэтому некорректная конфигурация такого рода может быть легко обнаружена в течение длительного времени.

Сложно сказать, что не так в вашем конкретном случае, без дополнительной информации о вашей локальной сети, но первое, что приходит на ум, - это настроить правильное «DNS-суффикс» на маршрутизаторе. Обычно это можно найти в настройках DHCP.

+0

Согласно исследованию, нет способа получить имя (и) устройства от LocalNetwork DNS-reverse напрямую. Вам нужно будет выполнить рукопожатие с одноранговыми устройствами, такими как общий файл 1 с протоколом Samba. –