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地址。后期可以修改这个地址。