mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2026-02-12 09:45:37 +08:00
安装时如果数据库地址填写的是公网IP,则提示会影响系统运行性能
This commit is contained in:
39
internal/web/actions/default/setup/checkLocalIP.go
Normal file
39
internal/web/actions/default/setup/checkLocalIP.go
Normal file
@@ -0,0 +1,39 @@
|
||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
|
||||
package setup
|
||||
|
||||
import (
|
||||
"github.com/TeaOSLab/EdgeAdmin/internal/utils"
|
||||
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
|
||||
"net"
|
||||
)
|
||||
|
||||
// CheckLocalIPAction 检查IP是否为局域网IP
|
||||
type CheckLocalIPAction struct {
|
||||
actionutils.ParentAction
|
||||
}
|
||||
|
||||
func (this *CheckLocalIPAction) RunPost(params struct {
|
||||
Host string
|
||||
}) {
|
||||
var ip = net.ParseIP(params.Host)
|
||||
if ip == nil {
|
||||
// 默认为true
|
||||
this.Data["isLocal"] = true
|
||||
this.Success()
|
||||
}
|
||||
|
||||
var ipObj = ip.To4()
|
||||
if ipObj == nil {
|
||||
ipObj = ip.To16()
|
||||
}
|
||||
if ipObj == nil {
|
||||
// 默认为true
|
||||
this.Data["isLocal"] = true
|
||||
this.Success()
|
||||
}
|
||||
|
||||
this.Data["isLocal"] = utils.IsLocalIP(ipObj)
|
||||
|
||||
this.Success()
|
||||
}
|
||||
@@ -14,6 +14,7 @@ func init() {
|
||||
Post("/install", new(InstallAction)).
|
||||
Post("/status", new(StatusAction)).
|
||||
Post("/detectDB", new(DetectDBAction)).
|
||||
Post("/checkLocalIP", new(CheckLocalIPAction)).
|
||||
EndAll()
|
||||
})
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package helpers
|
||||
import (
|
||||
"github.com/TeaOSLab/EdgeAdmin/internal/events"
|
||||
nodes "github.com/TeaOSLab/EdgeAdmin/internal/rpc"
|
||||
"github.com/TeaOSLab/EdgeAdmin/internal/utils"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/systemconfigs"
|
||||
"github.com/iwind/TeaGo/lists"
|
||||
@@ -66,7 +67,7 @@ func checkIPWithoutCache(config *systemconfigs.SecurityConfig, ipAddr string) bo
|
||||
return false
|
||||
}
|
||||
}
|
||||
if config.AllowLocal && isLocalIP(ip) {
|
||||
if config.AllowLocal && utils.IsLocalIP(ip) {
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -105,18 +106,3 @@ func checkIPWithoutCache(config *systemconfigs.SecurityConfig, ipAddr string) bo
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// 判断是否为本地IP
|
||||
func isLocalIP(ip net.IP) bool {
|
||||
if ip[0] == 127 ||
|
||||
ip[0] == 10 ||
|
||||
(ip[0] == 172 && ip[1]&0xf0 == 16) ||
|
||||
(ip[0] == 192 && ip[1] == 168) {
|
||||
return true
|
||||
}
|
||||
|
||||
if ip.String() == "::1" {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user