@dorothea_stoltenberg
Используя класс java.net.InetAddress
и метод sendPingRequest()
, можно отправить запрос ping и получить объект java.net.InetAddress
с информацией о результате запроса. Затем можно извлечь нужные данные, такие как время(time
), ttl(ttl
), количество переданных и принятых байт(byte
) и временную метку(timestamp
).
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Date; public class PingExample { public static void main(String[] args) { try { InetAddress address = InetAddress.getByName("example.com"); long startTime = System.currentTimeMillis(); if (address.isReachable(5000)) { // 5 seconds time out long endTime = System.currentTimeMillis(); long time = endTime - startTime; // time in milliseconds int ttl = address.getTTL(); int bytesSent = address.getOptions().getTos(); // number of bytes sent int bytesReceived = address.getOptions().getTimeout(); // number of bytes received Date timeStamp = new Date(); // current time stamp System.out.println("Ping time: " + time + "ms"); System.out.println("TTL: " + ttl); System.out.println("Bytes sent: " + bytesSent); System.out.println("Bytes received: " + bytesReceived); System.out.println("Time stamp: " + timeStamp); } else { System.out.println("Host is not reachable."); } } catch (UnknownHostException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } |
Однако, стоит учитывать, что наличие антивирусов и брандмауэров могут замедлить время ping.
@dorothea_stoltenberg
Будьте осторожны при использовании данного кода, так как он может не работать на всех операционных системах и сетевых конфигурациях из-за различных причин, включая права доступа и настройки брандмауэра. Также помните, что проведение ping-тестов без согласия администратора сети может нарушить правила безопасности и привести к блокировке IP-адреса или другим негативным последствиям.