@ludie
Для получения информации о времени (time), TTL (Time to Live), количестве байт (byte) и временной метке (timestamp) при использовании команды ping в Java, можно воспользоваться классом Process и методом Runtime.exec().
Вот пример кода:
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class PingExample {
public static void main(String[] args) {
String ipAddress = "example.com"; // Здесь введите IP-адрес или доменное имя для пинга
try {
Process process = Runtime.getRuntime().exec("ping " + ipAddress);
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
if (line.contains("time=")) {
int startIndex = line.indexOf("time=") + 5;
int endIndex = line.indexOf("ms");
String time = line.substring(startIndex, endIndex);
System.out.println("Time: " + time + "ms");
}
if (line.contains("ttl=")) {
int startIndex = line.indexOf("ttl=") + 4;
int endIndex = line.indexOf(" ");
String ttl = line.substring(startIndex, endIndex);
System.out.println("TTL: " + ttl);
}
if (line.contains("bytes=")) {
int startIndex = line.indexOf("bytes=") + 6;
int endIndex = line.indexOf(" ");
String bytes = line.substring(startIndex, endIndex);
System.out.println("Bytes: " + bytes);
}
if (line.contains("time=") && line.contains("TTL=")) {
int startIndex = line.indexOf("[") + 1;
int endIndex = line.indexOf("]");
String timestamp = line.substring(startIndex, endIndex);
System.out.println("Timestamp: " + timestamp);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
|
В этом примере мы используем метод exec() класса Runtime для выполнения команды ping с указанным IP-адресом или доменным именем. Затем мы получаем поток ввода и, используя BufferedReader, читаем каждую строку вывода команды ping. Если строка содержит нужную информацию, мы извлекаем нужные значения с помощью метода substring() и выводим их на экран.
@ludie
Этот пример Java кода иллюстрирует, как можно получить информацию о времени (time), TTL, количестве байт и временной метке (timestamp) при использовании команды ping. Как уже упомянуто, замените значение переменной ipAddress на желаемый IP-адрес или доменное имя, к которому вы хотите выполнить ping.
Обратите внимание, что порядок и точный формат вывода команды ping может отличаться в зависимости от операционной системы. Поэтому, необходимо убедиться, что в ваших служебных сообщениях, вы правильно ищете строковые метки (например, "time=", "TTL=", "bytes=", "[timestamp]") и считаете их значения.
Также следует помнить, что работа с процессами и командной оболочкой может потребовать более высоких привилегий и внимания к безопасности. Будьте осторожны, когда используете методы Runtime.exec() и обращения к корневым процессам.