From e9979c1ab7509295817a13094ba46d8aa13e8f05 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 18 三月 2026 14:22:39 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/task/DevicePingScheduler.java | 28 ++++++++++++++++++++++++++--
1 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/core/task/DevicePingScheduler.java b/src/main/java/com/zy/core/task/DevicePingScheduler.java
index af8fbf7..a126b4e 100644
--- a/src/main/java/com/zy/core/task/DevicePingScheduler.java
+++ b/src/main/java/com/zy/core/task/DevicePingScheduler.java
@@ -15,6 +15,7 @@
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
@@ -296,20 +297,32 @@
|| lower.contains("could not find host")
|| lower.contains("name or service not known")
|| lower.contains("temporary failure in name resolution")
+ || lower.contains("general failure")
+ || lower.contains("transmit failed")
|| value.contains("璇锋眰瓒呮椂")
|| value.contains("鎵句笉鍒颁富鏈�")
|| value.contains("鏃犳硶璁块棶鐩爣涓绘満")
+ || value.contains("涓�鑸晠闅�")
+ || value.contains("浼犺緭澶辫触")
|| value.contains("100.0% 涓㈠け")) {
return trimMessage(value);
}
}
for (String line : lines) {
String value = line == null ? "" : line.trim();
- if (!value.isEmpty()) {
+ if (!value.isEmpty() && !isPingHeaderLine(value)) {
return trimMessage(value);
}
}
return "exit=" + exitCode;
+ }
+
+ private boolean isPingHeaderLine(String value) {
+ String lower = value.toLowerCase();
+ return lower.startsWith("ping ")
+ || value.startsWith("姝e湪 Ping ")
+ || value.contains("瀛楄妭鐨勬暟鎹�")
+ || value.contains("bytes of data");
}
private String trimMessage(String message) {
@@ -330,7 +343,18 @@
while ((length = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, length);
}
- return outputStream.toString(Charset.defaultCharset());
+ return outputStream.toString(resolveProcessOutputCharset());
+ }
+
+ private Charset resolveProcessOutputCharset() {
+ if (isWindows()) {
+ try {
+ return Charset.forName("GBK");
+ } catch (Exception ignored) {
+ return Charset.defaultCharset();
+ }
+ }
+ return StandardCharsets.UTF_8;
}
private ExecutorService ensureExecutor() {
--
Gitblit v1.9.1