From 069cd3a582ac5c513785d68f15d01a096450dd20 Mon Sep 17 00:00:00 2001 From: spiritlhl <103393591+spiritLHLS@users.noreply.github.com> Date: Sat, 8 Jun 2024 15:12:02 +0000 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0stun=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E5=88=97=E8=A1=A8=EF=BC=8C=E8=BD=AE=E8=AF=A2=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E9=81=BF=E5=85=8D=E6=A3=80=E6=B5=8B=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- cmd/main.go | 45 ++++++++++++++++++++++++++++++++++++++------- 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index acaa365..ff8da31 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ address and port dependent ## 使用说明[Usage] -更新时间[Version]: 2024.05.05 +更新时间[Version]: 2024.06.08 ``` curl https://raw.githubusercontent.com/oneclickvirt/gostun/main/gostun_install.sh -sSf | sh diff --git a/cmd/main.go b/cmd/main.go index f5afefd..a2297cc 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -74,13 +74,44 @@ func main() { } log = logging.NewDefaultLeveledLoggerForScope("", logLevel, os.Stdout) - if err := mappingTests(*addrStrPtr); err != nil { - NatMappingBehavior = "inconclusive" // my changes - log.Warn("NAT mapping behavior: inconclusive") - } - if err := filteringTests(*addrStrPtr); err != nil { - NatFilteringBehavior = "inconclusive" // my changes - log.Warn("NAT filtering behavior: inconclusive") + if *addrStrPtr == "stun.voipgate.com:3478" { + if err := mappingTests(*addrStrPtr); err != nil { + NatMappingBehavior = "inconclusive" // my changes + log.Warn("NAT mapping behavior: inconclusive") + } + if err := filteringTests(*addrStrPtr); err != nil { + NatFilteringBehavior = "inconclusive" // my changes + log.Warn("NAT filtering behavior: inconclusive") + } + } else { + addrStrPtrList := []string{ + "stun.voipgate.com:3478", + "stun.miwifi.com:3478", + "stunserver.stunprotocol.org:3478", + } + checkStatus := true + for _, addrStr := range addrStrPtrList { + err1 := mappingTests(addrStr) + if err1 != nil { + NatMappingBehavior = "inconclusive" + log.Warn("NAT mapping behavior: inconclusive") + checkStatus = false + } + err2 := filteringTests(addrStr) + if err2 != nil { + NatFilteringBehavior = "inconclusive" + log.Warn("NAT filtering behavior: inconclusive") + checkStatus = false + } + if NatMappingBehavior == "inconclusive" || NatFilteringBehavior == "inconclusive" { + checkStatus = false + } else if NatMappingBehavior != "inconclusive" && NatFilteringBehavior != "inconclusive" { + checkStatus = true + } + if checkStatus { + break + } + } } // my changes start if NatMappingBehavior != "" && NatFilteringBehavior != "" {