Je souhaite trouver toutes les adresses IP des périphériques du réseau local auquel je suis actuellement connecté à l'aide du code Java. L'utilitaire utile Advanced IP Scanner
est en mesure de trouver différentes adresses IP dans mon subnet de 192.168.178/24
:Rechercher toutes les adresses IP dans le réseau local
Selon this réponse, je construit mon code de la manière suivante:
import java.io.IOException;
import java.net.InetAddress;
public class IPScanner
{
public static void checkHosts(String subnet) throws IOException
{
int timeout = 100;
for (int i = 1; i < 255; i++)
{
String host = subnet + "." + i;
if (InetAddress.getByName(host).isReachable(timeout))
{
System.out.println(host + " is reachable");
}
}
}
public static void main(String[] arguments) throws IOException
{
checkHosts("192.168.178");
}
}
Malheureusement, cela ne n'imprime aucun résultat, ce qui signifie qu'aucune adresse IP n'est accessible. Pourquoi? Comme le montre le scan Advanced IP Scanner
, il y a des périphériques sur mon réseau local.
J'ai vérifié ce code sur mon réseau, en utilisant la diffusion, juste le mien IP ou en essayant "www.google.com". Dit toujours "pas joignable". Cochez cette réponse: http://stackoverflow.com/questions/9922543/why-does-inetaddress-isreachable-return-false-when-i-can-ping-the-ip-address –
Copie possible de [Comment obtenir un liste des adresses IP connectées dans le même réseau (sous-réseau) en utilisant Java] (http://stackoverflow.com/questions/3345857/how-to-get-a-list-of-ip-connected-in-same-network-subnet- using-java) – jww