mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-12-16 07:46:36 +08:00
实现基础的DDoS防护
This commit is contained in:
@@ -5,9 +5,12 @@ import (
|
||||
"github.com/cespare/xxhash"
|
||||
"math"
|
||||
"net"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var ipv4Reg = regexp.MustCompile(`\d+\.`)
|
||||
|
||||
// IP2Long 将IP转换为整型
|
||||
// 注意IPv6没有顺序
|
||||
func IP2Long(ip string) uint64 {
|
||||
@@ -54,3 +57,24 @@ func IsLocalIP(ipString string) bool {
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
// IsIPv4 是否为IPv4
|
||||
func IsIPv4(ip string) bool {
|
||||
var data = net.ParseIP(ip)
|
||||
if data == nil {
|
||||
return false
|
||||
}
|
||||
if strings.Contains(ip, ":") {
|
||||
return false
|
||||
}
|
||||
return data.To4() != nil
|
||||
}
|
||||
|
||||
// IsIPv6 是否为IPv6
|
||||
func IsIPv6(ip string) bool {
|
||||
var data = net.ParseIP(ip)
|
||||
if data == nil {
|
||||
return false
|
||||
}
|
||||
return !IsIPv4(ip)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user