Dieser Artikel teilt Ihnen die Java -Methode mit, um die Netzwerkkonnektivität für Ihre Referenz zu testen. Der spezifische Inhalt ist wie folgt
Die erste Methode: Verwenden Sie die Java -Laufzeit:
Java -Code
/** * Testen Sie Netzwerk * @param ip */private void getNetworkState (String ip) {runTime runtime = runtime.getRuntime (); probieren {log.info ("========================= Test -Netzwerkkonnektivität IP:"+ip); Process process = runtime.exec ("ping" +ip); InputStream isTream = process.getInputStream (); InputStreamReader isReader = new InputStreamReader (iStream, "UTF-8"); BufferedReader breader = neuer bufferedReader (isReader); String line = null; StringBuffer sb = new StringBuffer (); while ((line = breader.readline ())! = null) {sb.append (line); } isTream.close (); isReader.close (); breader.close (); String result = new String (sb.toString (). GetBytes ("utf-8")); log.info ("Ping -Ergebnis:"+Ergebnis); if (! stringutils.isblank (result)) {if (result.indexof ("ttl")> 0 || result.indexof ("ttl")> 0) {log.info ("Netzwerk ist normal, Zeit:" + timeutil.getCurdate ("yyyy-mm-dd hh: mm: mm: ss"); } else {log.info ("Netzwerk ist getrennt, Zeit:" + timeutil.getCurdate ("yyyy-mm-dd hh: mm: ss")); }}} catch (exception e) {log.Error ("Netzwerkausnahme:"+e.getMessage ()); E. printstacktrace (); }} Auf der Windows -Plattform wird der obige Code nicht verwendet und Ping IP endet. Wenn der Ping -Befehl jedoch in der Linux -Umgebung nicht funktioniert, funktioniert
Es wird auf ungewisse Weise festgefahren, Ping- und Ausgabeinformationen ausgeben. Verwenden Sie eine andere Art und Weise, um Socket zu verwenden.
Der zweite Weg zur Socket:
Java -Code
Paket com.util.network; import java.io.ioxception; import java.net.inetaddress; import java.net.inetsocketaddress; import Java.net.networkInterface; importieren java.net.socket; import. java.net.unnownhostException; import Java.util.Enumeration; import org.apache.commons.lang.Stringutils; LoggerFactory.getLogger (networkHelper.class); private static networkHelper Instance = null; public static synchronisierte networkHelper getInstance () {if (instance == null) {instance = new NetworkHelper (); } return Instance; } / ** * Testen Sie, ob lokale Ping -IP * * @param IP * @Return * / public boolean isReachip (String ip) {boolean isReach = false; try {inetaddress address = inetaddress.getByname (ip); // dieses ip if if (Adressinstanz java.net.inet4Address) {log.info (ip + "ist ipv4 -Adresse"); } else if (Adressinstanz java.net.inet6Address) {log.info (IP + "ist ipv6 -Adresse"); } else {log.info (ip + "ist nicht ötig"); } if (address.isRectable (5000)) {isReach = true; log.info ("Erfolg - ping" + ip + "ohne angegebene Schnittstelle"); } else {isReach = false; log.info ("Fehler - ping" + ip + "ohne angegebene Schnittstelle"); }} catch (Ausnahme e) {log.Error ("Fehler kommt:" + e.getMessage ()); } return isReach; } / ** * Testen Sie alle lokalen Netzwerkkartenadressen, um das IP * * @param IP * @return * / public boolean isReachNetworkInterfaces (String IP) {boolean isReach = false; try {inetaddress address = inetaddress.getByname (ip); // dieses ip if if (Adressinstanz java.net.inet4Address) {log.info (ip + "ist ipv4 -Adresse"); } else if (Adressinstanz java.net.inet6Address) {log.info (IP + "ist ipv6 -Adresse"); } else {log.info (ip + "ist nicht ötig"); } if (address.isRectable (5000)) {isReach = true; log.info ("Erfolg - ping" + ip + "ohne angegebene Schnittstelle"); } else {isReach = false; log.info ("Fehler - ping" + ip + "ohne angegebene Schnittstelle"); } if (isReach) {log.info ("----------------"); Enumeration <NetworkInterface> netInterfaces = networkInterface .getNetworkInterfaces (); while (netInterfaces.hasmoreElements ()) {networkInterface ni = netInterfaces.nextElement (); log.info ("Schnittstelle überprüfen, DisplayName:" + ni.getDisplayName () + ", Name:" + ni.getName ()); if (address.isreacable (Ni, 0, 5000)) {isReach = true; log.info ("Erfolg - ping" + ip); } else {isReach = false; log.info ("Fehler - Ping" + IP); } Enumeration <InetAddress> ips = ni.getInetadDresse (); while (ips.hasmoreElements ()) {log.info ("ip:" + ips.NextElement (). GethostadDress ()); } log.info ("----------------- prüfen nun netrainInterface ist fertig ----------------------"); }}} catch (exception e) {log.Error ("Fehler vorkommt:" + e.getMessage ()); } return isReach; } / ** * Erhalten Sie die native IP -Adresse, die eine Verbindung zum angegebenen Port des Remote -Hosts herstellen kann Enumeration <NetworkInterface> netInterfaces; try {netInterfaces = networkInterface.getNetworkInterfaces (); while (netInterfaces.hasmoreElements ()) {networkInterface ni = netInterfaces.nextElement (); Enumeration <InetAddress> localAddrs = ni.getInetadDresse (); while (localAddrs.hasmoreElements ()) {inetaddress localAddr = localAddrs.NextElement (); if (isRectable (localAddr, remoteaddr, port, 5000)) {retip = localAddr.gethostadDress (); brechen; }}}} catch (socketException e) {log.Error ("Fehler beim Auflisten aller lokalen Netzwerkadressen:" + e.getMessage ()); } if (retip == null) {log.info ("Null AREADABAL LOCAL IP wird gefunden!"); } else {log.info ("erreichbare lokale IP wird gefunden, es ist" + retip); } return retip; } / ** * Holen Sie sich die native IP -Adresse, die eine Verbindung mit dem angegebenen Port des Remote -Hosts herstellen kann Inetaddress remoteaddr = null; Enumeration <NetworkInterface> netInterfaces; try {remoteaddr = inetAddress.getByName (remoteip); netInterfaces = networkinterface.getNetworkInterfaces (); while (netInterfaces.hasmoreElements ()) {networkInterface ni = netInterfaces.nextElement (); Enumeration <InetAddress> localAddrs = ni.getInetadDresse (); while (localAddrs.hasmoreElements ()) {inetaddress localAddr = localAddrs.NextElement (); if (isRectable (localAddr, remoteaddr, port, 5000)) {retip = localAddr.gethostadDress (); brechen; }}}} catch (unbekannteHostException e) {log.Error ("Fehler aufgetreten, während alle lokalen Netzwerkadressen aufgeführt sind:"+ e.getMessage ()); } catch (SocketException e) {log.Error ("Fehler beim Auflisten aller lokalen Netzwerkadressen:"+ e.getMessage ()); } if (retip == null) {log.info ("Null AREADABAL LOCAL IP wird gefunden!"); } else {log.info ("erreichbare lokale IP wird gefunden, es ist" + retip); } return retip; } /** * Test whether localInetAddr can establish a connection with the remote host specified port* * @param localInetAddr * @param remoteInetAddr * @param port * @param timeout * @return */ public boolean isReachable(InetAddress localInetAddr, InetAddress remoteInetAddr, int port, int timeout) { boolean isReachable = false; Socket Socket = Null; try {socket = new Socket (); // Stellen Sie die Portnummer auf 0 ein, um anzugeben, dass Sie einen verfügbaren Port lokal für die Verbindung auswählen. SOCKKETADDRESS COMPALSOCKETADDR = NEU INETSOCKETADDRESS (localInetaddr, 0); Socket.bind (localSocketaddr); Inetsocketaddress EndpointsocketadDR = New InetSocketadDress (RemoteInetAddr, Port); Socket.Connect (EndpointsocketAddr, Timeout); log.info ("Erfolg - Verbindung hergestellt! Lokal:" + localInetaddr.gethostadDress () + "Remote:" + remoteInetaddr.GethostadDress () + "Port" + Port); isRectable = true; } catch (ioException e) {log.Error ("failre - kann nicht herstellen! Lokal:" + localInetaddr.gethostadDress () + "Remote:" + remoteInetadDR.GethostadDress () + "Port" + Port); } endlich {if (socket! = null) {try {socket.close (); } catch (ioException e) {log.Error ("Fehler beim Schließen von Socket:" + e.getMessage ()); }}} return isRectable; } / ** * Testen Sie, ob LocalIP eine Verbindung mit dem angegebenen Port -Host festlegen kann. Socket Socket = Null; InetadDress localInetaddr = null; InetadDress remoteinTaddr = null; try {localInetaddr = inetaddress.getByname (localIp); remotEinTadDr = inetaddress.getByName (remoteip); Socket = neuer Socket (); // Stellen Sie die Portnummer auf 0 ein, um anzugeben, dass Sie einen verfügbaren Port lokal für die Verbindung auswählen. SOCKKETADDRESS COMPALSOCKETADDR = NEU INETSOCKETADDRESS (localInetaddr, 0); Socket.bind (localSocketaddr); Inetsocketaddress EndpointsocketadDR = New InetSocketadDress (RemoteInetAddr, Port); Socket.Connect (EndpointsocketAddr, Timeout); log.info ("Erfolg - Verbindung hergestellt! Lokal:" + localInetaddr.gethostadDress () + "Remote:" + remoteInetaddr.GethostadDress () + "Port" + Port); isRectable = true; } catch (ioException e) {log.Error ("failre - kann nicht herstellen! Lokal:" + localInetaddr.gethostadDress () + "Remote:" + remoteInetadDR.GethostadDress () + "Port" + Port); } endlich {if (socket! = null) {try {socket.close (); } catch (ioException e) {log.Error ("Fehler beim Schließen von Socket:" + e.getMessage ()); }}} return isRectable; } public static void main (String [] args) {if (networkHelper.getInstance (). } else {log.info ("========= Native Ping ping die IP:"+"192.168.126.128"); } if (networkHelper.getInstance (). } else {log.info ("======== alle Netzwerkkarten im Computer können die IP nicht pingen:"+"192.168.126.128"); } String localip = networkHelper.getInstance (). GetReachableIp ("192.168.126.128", 8081); if (! Stringutils.isblank (localIp)) {log.info ("========= Die native Maschine kann eine IP für die Verbindung mit IP herstellen:"+"192.168.126.128"+", Port:"+8081+ ":"+localip); } else {log.info ("======= Native Maschine kann keine IP für die Verbindung mit IP herstellen:"+"192.168.126.128"+", Port:"+8081+ ""); }}} Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.