fix: 修复 IPv6 地址解析中的端口处理逻辑

- 将 LastIndex 替换为 Index,以正确找到第一个闭合括号。
- 添加逻辑以在端口部分为空时使用默认端口 80,解决了潜在的连接问题。
This commit is contained in:
2025-12-17 20:09:51 +08:00
parent f01547df35
commit 21592ae8a0
2 changed files with 12 additions and 4 deletions

View File

@@ -23,8 +23,8 @@ func handleTCPing(c *gin.Context, url string, params map[string]interface{}) {
// 检查是否是IPv6格式如 [::1]:8080
if strings.HasPrefix(url, "[") {
// IPv6格式
closeBracket := strings.LastIndex(url, "]")
// IPv6格式 - 使用 Index 而不是 LastIndex 来找到第一个闭合括号
closeBracket := strings.Index(url, "]")
if closeBracket == -1 {
c.JSON(200, gin.H{
"seq": seq,
@@ -37,6 +37,10 @@ func handleTCPing(c *gin.Context, url string, params map[string]interface{}) {
host = url[1:closeBracket]
if closeBracket+1 < len(url) && url[closeBracket+1] == ':' {
portStr = url[closeBracket+2:]
// 如果端口部分为空使用默认端口80修复 Bug 1
if portStr == "" {
portStr = "80"
}
} else {
portStr = "80" // 默认端口
}