From e5b840a492c5a1faacbafadbba0c0081d38143ee Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Fri, 10 Mar 2023 17:00:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=89=E8=A3=85=E8=BF=87=E7=A8=8B=E4=B8=AD?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E4=B8=BB=E6=9C=BA=E5=9C=B0=E5=9D=80=E5=85=81?= =?UTF-8?q?=E8=AE=B8=E5=A1=AB=E5=86=99=E5=9F=9F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/actions/default/setup/validateApi.go | 20 ++++++++++++++++++- web/views/@default/setup/index.html | 2 +- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/internal/web/actions/default/setup/validateApi.go b/internal/web/actions/default/setup/validateApi.go index 2b8e8f63..f152b6e1 100644 --- a/internal/web/actions/default/setup/validateApi.go +++ b/internal/web/actions/default/setup/validateApi.go @@ -10,6 +10,7 @@ import ( "github.com/iwind/TeaGo/maps" "github.com/iwind/TeaGo/types" "net" + "regexp" "strings" ) @@ -61,7 +62,24 @@ func (this *ValidateApiAction) RunPost(params struct { } if net.ParseIP(params.NewHost) == nil { - this.FailField("newHost", "请输入正确的API节点主机地址") + // 检查是否为域名 + var domainReg = regexp.MustCompile(`^[\w-]+$`) // 这里暂不支持 unicode 域名 + var digitReg = regexp.MustCompile(`^\d+$`) + var isIP = true + for _, piece := range strings.Split(params.NewHost, ".") { + if !domainReg.MatchString(piece) { + this.FailField("newHost", "请输入正确的API节点主机地址") + return + } + if !digitReg.MatchString(piece) { + isIP = false + } + } + + if isIP { + this.FailField("newHost", "请输入正确的API节点主机地址") + return + } } params.Must. diff --git a/web/views/@default/setup/index.html b/web/views/@default/setup/index.html index 4a6c955e..d4159689 100644 --- a/web/views/@default/setup/index.html +++ b/web/views/@default/setup/index.html @@ -89,7 +89,7 @@ -

其他节点访问此API节点的主机地址,可以是IP或者域名,第一次安装时通常是当前服务器的公网IP地址。后期可以修改这个地址。

+

API节点IP地址或者域名。其他节点访问此API节点的主机地址,可以是IP或者域名,第一次安装时通常是当前服务器的公网IP地址。后期可以修改这个地址。