Comment faire pour obtenir l'adresse IP et les noms de tous les périphériques de réseau local sur Android

Je veux voir tous les appareils connectés sur mon réseau avec java, mais je ne peux pas le faire fonctionner. J'ai joint quelques captures d'écran ci-dessous de la façon dont je veux qu'elle soit sortie. Je voudrais avoir le nom (par exemple "TP Link Routeur" ou "Nexus 5X") et l'adresse IP.

J'ai beaucoup cherché sur google et stackoverflow, mais rien ne semblait fonctionner pour moi. Même GitHub n'a pas de code. J'ai essayé de chercher pour UPnP, Réseau Local, sous-réseaux, etc, mais rien trouvé.

InetAddress localhost = InetAddress.getLocalHost();
byte[] ip = localhost.getAddress();
for (int i = 1; i <= 254; i++) {
    ip[3] = (byte)i;
    InetAddress address = InetAddress.getByAddress(ip);
    if (address.isReachable(1000)) {
        System.out.println(address + address.getHostAddress() + address.getAddress() + address.getHostName() + address.getCanonicalHostName());
    }
}

Comment faire pour obtenir l'adresse IP et les noms de tous les périphériques de réseau local sur Android
Comment faire pour obtenir l'adresse IP et les noms de tous les périphériques de réseau local sur Android

Je n'ai en effet trouver un duplicata (en quelque sorte) de la question, mais il n'a pas reçu de réponse depuis plus d'un an. Source

où avez-vous obtenu ces identicons?
Par la façon dont, en commentant une autre question qui n'a pas de bosse dans la première page
ceux qui ont été à partir de l'app, je pense qu'ils viennent de générer d'après le nom de celui-ci
Je n'étais pas viser que... 😛 . J'espérais que l'original interlocuteur a déjà résolu et je voulais le partager

OriginalL'auteur Jason | 2016-09-05