Эта статья разделяет с вами метод Java для проверки сетевой подключения для вашей ссылки. Конкретный контент заключается в следующем
Первый метод: используйте время выполнения Java:
Код Java
/** * Тестовая сеть * @param ip */private void getnetworkstate (String ip) {время выполнения времени выполнения = runtime.getruntime (); try {log.info ("============================================ Процесс процесса = runtime.exec ("ping" +ip); InputStream iStream = process.getInputStream (); InputStreamReader isReader = new InputStreamReader (iStream, "UTF-8"); BufferedReader Hacle = новый BufferedReader (isReader); String line = null; StringBuffer sb = new StringBuffer (); while ((line = deamer.readline ())! = null) {sb.append (line); } iStream.close (); isreader.close (); Hacle.close (); String result = new String (sb.toString (). GetBytes ("UTF-8")); log.info ("Результат пинга:"+результат); if (! stringUtils.isblank (result)) {if (result.indexof ("ttl")> 0 || result.indexof ("ttl")> 0) {log.info ("Сеть нормальная, время:" + timeutil.getcurdate ("yyy-mm-dd hh: mm: ss")); } else {log.info ("Сеть отключена, время:" + timeutil.getCurdate ("yyyy-mm-dd Hh: mm: ss")); }}} catch (Exception e) {log.error ("Сеть исключение:"+e.getMessage ()); e.printstacktrace (); }} На платформе Windows приведенный выше код не используется, а IP Ping IP закончится. Однако, когда команда Ping не работает в среде Linux,
Он будет застрять, пинговать и выводить информацию неопределенными способами. Подумайте о том, чтобы использовать другой способ в розетку.
Второй путь к розетку:
Код Java
пакет com.util.network; импорт java.io.ioexception; import java.net.inetadress; импорт java.net.inetsocketAddress; импорт java.net.networkinterface; импорт java.net.socket; import java.net.socketAddress; import java.net.socketaddress; import.netexexexexexexex; импорт; импорт. java.net.unknownhostexception; import java.util.enumeration; импорт org.apache.commons.lang.stringutils; import org.slf4j.logger; import org.slf4j.loggerfactory;/** * Loggerfactory.getlogger (networkhelper.class); Частный статический сетевой экземпляр = null; Public Static Synchronized NetworkHelper getInstance () {if (exance == null) {exance = new NetworkHelper (); } return Encement; } / ** * Проверьте, является ли локальный ping ip * * @param ip * @return * / public boolean isreachip (String ip) {boolean isreach = false; try {inetAddress address = inetAddress.getByname (ip); // ping этого ip if (ander instanceof java.net.inet4address) {log.info (ip + "Is Ipv4 Adder"); } else if (экземпляр ADDRICE of java.net.inet6address) {log.info (ip + " - это IPv6 -адрес"); } else {log.Info (ip + "неконтронут"); } if (address.isreachable (5000)) {isreach = true; log.info ("успех - ping" + ip + "без указанного интерфейса"); } else {isreach = false; log.info ("сбой - ping" + ip + "без указанного интерфейса"); }} catch (Exception e) {log.error ("Происходит ошибка:" + e.getMessage ()); } вернуть isReach; } / ** * Проверьте все адреса локальной сетевой карты, чтобы Ping IP * * @param ip * @return * / public boolean isreachnetworkinterface (String ip) {boolean isreach = false; try {inetAddress address = inetAddress.getByname (ip); // ping этого ip if (ander instanceof java.net.inet4address) {log.info (ip + "Is Ipv4 Adder"); } else if (экземпляр ADDRICE of java.net.inet6address) {log.info (ip + " - это IPv6 -адрес"); } else {log.Info (ip + "неконтронут"); } if (address.isreachable (5000)) {isreach = true; log.info ("успех - ping" + ip + "без указанного интерфейса"); } else {isreach = false; log.info ("сбой - ping" + ip + "без указанного интерфейса"); } if (isreach) {log.info ("----------------"); Enumeration <networkInterface> netInterfaces = networkInterface .getNetworkInterface (); while (netInterfaces.hasmoreElements ()) {NetworkInterface ni = netInterfaces.nextElement (); log.info ("Проверка интерфейса, DisplayName:" + ni.getDisplayName () + ", имя:" + ni.getName ()); if (address.isreachable (ni, 0, 5000)) {isreach = true; log.info ("успех - ping" + ip); } else {isreach = false; log.info ("сбой - ping" + ip); } Enumeration <netAddress> ips = ni.getinetAddresses (); while (ips.hasmoreElements ()) {log.info ("ip:" + ips.nextelement (). gethostaddress ()); } log.info ("----------------- Проверьте сейчас сетевой интерфейс --------------------------"); }}} catch (Exception e) {log.error ("Происходит ошибка:" + e.getMessage ()); } вернуть isReach; } / ** * Получить собственный IP -адрес, который может установить соединение с указанным портом удаленного хоста * @param remoteaddr * @param port * @return * / public String getReachableip (inetAddress remoteaddr, int port) {string retip = null; Перечисление <сетево -интерфейс> netInterfaces; try {netInterfaces = networkInterface.getNetWorkInterface (); while (netInterfaces.hasmoreElements ()) {NetworkInterface ni = netInterfaces.nextElement (); Перечисление <inetaddress> localaddrs = ni.getinetAddresses (); while (localaddrs.hasmoreElements ()) {inetAdress localaddr = localaddrs.nextelement (); if (isReachable (localAddr, remoteAddr, port, 5000)) {retip = localAddr.gethostAddress (); перерыв; }}}} catch (socketException e) {log.error ("Произошла ошибка при перечислении всех локальных сетевых адресов:" + e.getmessage ()); } if (retip == null) {log.info ("null достигаемый локальный IP найден!"); } else {log.Info ("Найдена достигаемого локального IP, он" + retip); } return retip; } / ** * Получить собственный IP -адрес, который может установить соединение с указанным портом удаленного хоста * @param remoteip * @param port * @return * / public String getReachableip (String remoteip, int port) {string retip = null; InetAddress remoteAddr = null; Перечисление <сетево -интерфейс> netInterfaces; try {remoteaddr = inetAddress.getByName (remoteip); netInterfaces = networkInterface.getNetWorkInterface (); while (netInterfaces.hasmoreElements ()) {NetworkInterface ni = netInterfaces.nextElement (); Перечисление <inetaddress> localaddrs = ni.getinetAddresses (); while (localaddrs.hasmoreElements ()) {inetAdress localaddr = localaddrs.nextelement (); if (isReachable (localAddr, remoteAddr, port, 5000)) {retip = localAddr.gethostAddress (); перерыв; }}}} catch (Unknownhostexception e) {log.error ("Произошла ошибка при перечислении всех локальных сетевых адресов:"+ e.getmessage ()); } catch (socketException e) {log.Error ("Произошла ошибка при перечислении всех локальных сетевых адресов:"+ e.getMessage ()); } if (retip == null) {log.info ("null достигаемый локальный IP найден!"); } else {log.Info ("Найдена достигаемого локального IP, он" + 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; Сокет сокет = null; try {socket = new Socket (); // Установите номер порта на 0, чтобы указать, что вы выбираете доступный порт локально для подключения. SocketAddress localsocketAddr = new InetSocketAddress (LocalInetAddr, 0); Socket.Bind (LocalalSocketAddr); InetsocketAddress endpointSocketAddr = new InetsocketAddress (remoteinetAddr, port); Socket.Connect (EndPointSocketAddr, Timeout); log.info ("Успех - Соединение установлено! Local:" + localinetaddr.gethostaddress () + "remote:" + remoteinetaddr.gethostaddress () + "порт" + порт); isreachable = true; } catch (ioException e) {log.error ("failre - не может подключиться! Local:" + localInetAddr.gethostAddress () + "remote:" + remoteinetAddr.gethostaddress () + "порт" + порт); } наконец {if (socket! = null) {try {socket.close (); } catch (ioException e) {log.error ("Произошла ошибка при закрытии сокета:" + e.getMessage ()); }}} return isReachable; } / ** * Проверьте, сможет ли Localip установить соединение с указанным удаленным хостом портом * * @param localip * @param remoteip * @param port * @param timeout * @return * / public boolean isreachable (String localip, string remoteip, int port, int timeout) {boolean isreeachable = false; Сокет сокет = null; InetAddress localinetaddr = null; InetAddress remoteinetAddr = null; try {localinetaddr = inetAddress.getByName (localip); remoteinetAddr = inetAddress.getByName (remoteip); сокет = новый сокет (); // Установите номер порта на 0, чтобы указать, что вы выбираете доступный порт локально для подключения. SocketAddress localsocketAddr = new InetSocketAddress (LocalInetAddr, 0); Socket.Bind (LocalalSocketAddr); InetsocketAddress endpointSocketAddr = new InetsocketAddress (remoteinetAddr, port); Socket.Connect (EndPointSocketAddr, Timeout); log.info ("Успех - Соединение установлено! Local:" + localinetaddr.gethostaddress () + "remote:" + remoteinetaddr.gethostaddress () + "порт" + порт); isreachable = true; } catch (ioException e) {log.error ("failre - не может подключиться! Local:" + localInetAddr.gethostAddress () + "remote:" + remoteinetAddr.gethostaddress () + "порт" + порт); } наконец {if (socket! = null) {try {socket.close (); } catch (ioException e) {log.error ("Произошла ошибка при закрытии сокета:" + e.getMessage ()); }}} return isReachable; } public static void main (string [] args) {if (networkHelper.getInstance (). isReachip ("192.168.126.128")) {log.info ("======== } else {log.info ("========= Нативный Ping не пингирует IP:"+"192.168.126.128"); } if (networkHelper.getInstance (). ISReachNetWorkInterfaces ("192.168.126.128"))) {log.info ("======== Все сетевые карты в машине могут пинговать IP:"+"192.168.126.128"); } else {log.info ("======== Все сетевые карты на машине не могут пинговать IP:"+"192.168.126.128"); } String localip = networkHelper.getInstance (). GetReachableIp ("192.168.126.128", 8081); if (! stringutils.isblank (localip)) {log.info ("======== Народная машина может установить IP для соединения с IP:"+"192.168.126.128"+", порт:"+8081+ ":"+localip); } else {log.info ("======= Народная машина не может установить IP для соединения с IP:"+"192.168.126.128"+", порт:"+8081+ ""); }}} Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.