Cet article partage avec vous la méthode Java pour tester la connectivité réseau pour votre référence. Le contenu spécifique est le suivant
La première méthode: utilisez le runtime Java:
Code java
/ ** * Test Network * @param ip * / private void getNetWorkState (String ip) {runtime runtime = runtime.getRuntime (); essayez {log.info ("======================== Test de connectivité réseau IP:" + IP); Processus process = runtime.exec ("ping" + ip); InputStream isttream = process.getInputStream (); InputStreamReader IsReader = new InputStreamReader (iStream, "UTF-8"); BufferedReader Adainer = nouveau BufferedReader (IsReader); Chaîne line = null; StringBuffer sb = new StringBuffer (); while ((line = areer.readline ())! = null) {sb.append (line); } isttream.close (); Isreader.Close (); Breader.Close (); String result = new String (sb.toString (). GetBytes ("UTF-8")); Log.info ("Résultat de ping:" + résultat); if (! stringUtils.isblank (result)) {if (result.indexof ("ttl")> 0 || result.indexof ("ttl")> 0) {log.info ("Le réseau est normal, temps:" + timeUtil.getCurdate; } else {log.info ("Le réseau est déconnecté, temps:" + timeUtil.getCurDate ("yyyy-mm-dd hh: mm: ss")); }}} catch (exception e) {log.Error ("Exception du réseau:" + e.getMessage ()); e.printStackTrace (); }} Sur la plate-forme Windows, le code ci-dessus n'est pas utilisé et Ping IP se terminera. Cependant, lorsque la commande ping ne fonctionne pas dans l'environnement Linux,
Il sera bloqué, ping et sortir des informations de manière incertaine. Envisagez d'utiliser une autre façon de socket.
La deuxième façon de prendre la prise:
Code java
package com.util.network; import java.io.ioexception; import java.net.inetaddress; import java.net.inetsocketaddress; import java.net.networkInterface; import java.net.socketddress java.net.socketaddress; import java.net.socketaddress; java.net.unknownhostException; import java.util.enumeration; import org.apache.commons.lang.stringutils; import org.slf4j.logger; import org.slf4j.loggerfactory; / ** * test de réseau de test * * @Autor donald * * / public classe réseau de classe LoggerFactory.getLogger (NetworkHelper.Class); instance de réseau statique privé = null; public static synchronisé réseauHelper getInstance () {if (instance == null) {instance = new NetworkHelper (); } return instance; } / ** * Testez si le ping local ip * * @param ip * @return * / public boolean isReachip (String ip) {boolean isReach = false; try {InetAddress Address = InetAddress.getByName (ip); // ping this ip if (adresse d'instance de java.net.inet4address) {log.info (ip + "est l'adresse ipv4"); } else if (adresse d'instance de java.net.inet6address) {log.info (ip + "est ipv6 adresse"); } else {log.info (ip + "n'est pas conclue"); } if (adresse.isReachable (5000)) {isReach = true; Log.info ("Success - Ping" + IP + "sans interface spécifiée"); } else {isReach = false; Log.info ("Faiche - Ping" + IP + "sans interface spécifiée"); }} catch (exception e) {log.error ("L'erreur se produit:" + e.getMessage ()); } return isReach; } / ** * Testez toutes les adresses de carte réseau locales pour faire un ping IP * * @param ip * @return * / public boolean isReachNetworkInterfaces (String ip) {boolean isReach = false; try {InetAddress Address = InetAddress.getByName (ip); // ping this ip if (adresse d'instance de java.net.inet4address) {log.info (ip + "est l'adresse ipv4"); } else if (adresse d'instance de java.net.inet6address) {log.info (ip + "est ipv6 adresse"); } else {log.info (ip + "n'est pas conclue"); } if (adresse.isReachable (5000)) {isReach = true; Log.info ("Success - Ping" + IP + "sans interface spécifiée"); } else {isReach = false; Log.info ("Faiche - Ping" + IP + "sans interface spécifiée"); } if (isReach) {log.info ("----------------"); Enumeration <NetworkInterface> netInterfaces = NetworkInterface .getNetWorkInterfaces (); while (netInterfaces.hasmoreElements ()) {NetworkInterface Ni = netInterfaces.NextElement (); Log.info ("Vérification de l'interface, affichage:" + ni.getDisplayName () + ", name:" + ni.getName ()); if (adresse.isReachable (ni, 0, 5000)) {isReach = true; Log.info ("Success - Ping" + IP); } else {isReach = false; Log.info ("Faiche - Ping" + IP); } Énumération <netAddress> ips = ni.getinetAddress (); while (ips.hasmoreElements ()) {log.info ("ip:" + ips.nextelement (). gethostaddress ()); } log.info ("----------------- Vérifiez maintenant NetworkInterface est fait --------------------------"); }}} catch (exception e) {log.Error ("L'erreur se produit:" + e.getMessage ()); } return isReach; } / ** * Obtenez l'adresse IP native qui peut établir une connexion au port spécifié de l'hôte distant * @param remooteaddr * @param port * @return * / public String getReachableIP (InetAddress Remoteaddr, int port) {String retip = null; Énumération <Assuïît de NetworkInterface> NetInterfaces; essayez {netInterfaces = NetworkInterface.getNetWorkInterfaces (); while (netInterfaces.hasmoreElements ()) {NetworkInterface Ni = netInterfaces.NextElement (); Énumération <netAddress> localAddrs = ni.getinetAddress (); while (localAddrs.hasmoreElements ()) {InetAddress localaddr = localAddrs.Nexttelement (); if (isReachable (localAddr, Remoteaddr, port, 5000)) {retip = localAddr.GethostAddress (); casser; }}}} catch (socketException e) {log.Error ("L'erreur s'est produite en répertoriant toutes les adresses réseau locales:" + e.getMessage ()); } if (retip == null) {log.info ("IP local null accessible est trouvé!"); } else {log.info ("IP local accessible se trouve, c'est" + retip); } return retip; } / ** * Obtenez l'adresse IP native qui peut établir une connexion avec le port spécifié de l'hôte distant * @Param RemoteIP * @param port * @return * / public String getReachableIP (String RemoteIP, int port) {String retip = null; InetAddress Remoteaddr = null; Énumération <Assuïît de NetworkInterface> NetInterfaces; essayez {remotEadDr = InetAddress.getByName (RemoteIP); netInterfaces = NetworkInterface.getNetWorkInterfaces (); while (netInterfaces.hasmoreElements ()) {NetworkInterface Ni = netInterfaces.NextElement (); Énumération <netAddress> localAddrs = ni.getinetAddress (); while (localAddrs.hasmoreElements ()) {InetAddress localaddr = localAddrs.Nexttelement (); if (isReachable (localAddr, Remoteaddr, port, 5000)) {retip = localAddr.GethostAddress (); casser; }}}} catch (UnknownHostException e) {log.Error ("L'erreur s'est produite lors de la répertorié toutes les adresses réseau locales:" + e.getMessage ()); } catch (socketException e) {log.Error ("L'erreur s'est produite lors de la répertorié toutes les adresses réseau locales:" + e.getMessage ()); } if (retip == null) {log.info ("IP local null accessible est trouvé!"); } else {log.info ("IP local accessible se trouve, c'est" + retip); } return retip; } / ** * Testez si LocalinetAdDR peut établir une connexion avec le port de l'hôte distant * * @param localinetaddr * @param Remoteinetaddr * @param port * @param timeout * @return * / public boolean isreachable (inetAddress localnetaddr, inetaddress false; Douille à douille = null; essayez {socket = new socket (); // Définissez le numéro de port sur 0 pour indiquer que vous sélectionnez un port disponible localement pour la connexion. SocketAddress localSocketAdDDR = new IneTSocketAddress (localInetAddr, 0); socket.bind (localSocketAddr); IneTSocketAddress EndPointSocketAdDR = new IneTSocketAddress (RemoteInetAddr, port); socket.connect (endpointSocketAddr, timeout); Log.info ("Success - Connexion établi! Local:" + Localinetaddr.GethostAddress () + "Remote:" + RemoteInetAddr.GethostAddress () + "Port" + port); isReachable = true; } catch (ioException e) {Log.Error ("FailRe - ne peut pas se connecter! Local:" + localinetaddr.gethostaddress () + "Remote:" + Remoteinetaddr.GethostAddress () + "port" + port); } enfin {if (socket! = null) {try {socket.close (); } catch (ioException e) {log.Error ("L'erreur s'est produite lors de la fermeture du socket:" + e.getMessage ()); }}} return isReachable; } / ** * Testez si LocalIP peut établir une connexion avec le port spécifié hôte distant * * @param localiP * @param RemoteIP * @param port * @param timeout * @return * / public boolean isReachable (String localip, string RemoteIp, int port, int timeout) {boolean isReachable = false; Douille à douille = null; InetAddress localinetaddr = null; InetAddress RemoteInetAdDR = null; essayez {localetAddr = InetAddress.getByName (localIP); RemoteInetAddr = InetAddress.getByName (RemoteIP); socket = new socket (); // Définissez le numéro de port sur 0 pour indiquer que vous sélectionnez un port disponible localement pour la connexion. SocketAddress localSocketAdDDR = new IneTSocketAddress (localInetAddr, 0); socket.bind (localSocketAddr); IneTSocketAddress EndPointSocketAdDR = new IneTSocketAddress (RemoteInetAddr, port); socket.connect (endpointSocketAddr, timeout); Log.info ("Success - Connexion établi! Local:" + Localinetaddr.GethostAddress () + "Remote:" + RemoteInetAddr.GethostAddress () + "Port" + port); isReachable = true; } catch (ioException e) {Log.Error ("FailRe - ne peut pas se connecter! Local:" + localinetaddr.gethostaddress () + "Remote:" + Remoteinetaddr.GethostAddress () + "port" + port); } enfin {if (socket! = null) {try {socket.close (); } catch (ioException e) {log.Error ("L'erreur s'est produite lors de la fermeture du socket:" + e.getMessage ()); }}} return isReachable; } public static void main (String [] args) {if (networkHelper.getInstance (). IsReachip ("192.168.126.128")) {log.info ("======= Le natif peut pier le IP:" + "192.168.126.128"); } else {log.info ("========= Le ping natif ne fait pas de ping IP:" + "192.168.126.128"); } if (NetworkHelper.getInstance (). IsReachNetWorkInterfaces ("192.168.126.128"))) {log.info ("======== Toutes les cartes réseau dans la machine peuvent ping-ping:" + "192.168.126.128"); } else {log.info ("======= Toutes les cartes réseau dans la machine ne peuvent pas cingler l'IP:" + "192.168.126.128"); } String localip = NetworkHelper.getInstance (). GetReachableIP ("192.168.126.128", 8081); if (! StringUtils.isblank (localIP)) {log.info ("======== La machine native peut établir une IP pour la connexion avec IP:" + "192.168.126.128" + ", port:" + 8081+ ":" + localP); } else {log.info ("======= La machine native ne peut pas établir une IP pour la connexion avec IP:" + "192.168.126.128" + ", port:" + 8081+ ""); }}} Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.