Files
SamWaf/wafbot/callback_ip.go
T

72 lines
1.7 KiB
Go

package wafbot
import "SamWaf/utils"
// CallBackIpResult 检测结果
type CallBackIpResult struct {
IsCallBack bool //是否是正常回调
CallBackName string //回调名称
}
func CheckCallBackIp(ip string) CallBackIpResult {
result := WeixinPayBackIP(ip)
if result.IsCallBack == true {
return result
}
result = AlipayPayBackIP(ip)
if result.IsCallBack == true {
return result
}
return CallBackIpResult{IsCallBack: false, CallBackName: ""}
}
func WeixinPayBackIP(ip string) CallBackIpResult {
ips := []string{
"175.24.214.208",
"175.24.211.24",
"175.24.213.135", "109.244.180.23", "114.132.203.119", "43.139.43.69",
}
for _, v := range ips {
if ip == v {
return CallBackIpResult{IsCallBack: true, CallBackName: "微信支付回调"}
}
}
ipRanges := []string{
"101.226.103.0/25",
"140.207.54.0/25",
"121.51.58.128/25",
"183.3.234.0/25",
"58.251.80.0/25",
"121.51.30.128/25",
"203.205.219.128/25",
}
isInRanges := utils.CheckIPInRanges(ip, ipRanges)
if isInRanges == true {
return CallBackIpResult{IsCallBack: true, CallBackName: "微信支付回调"}
}
return CallBackIpResult{IsCallBack: false, CallBackName: ""}
}
func AlipayPayBackIP(ip string) CallBackIpResult {
ipRanges := []string{
"103.47.4.0/22",
"103.52.196.0/22",
"110.75.128.0/19",
"110.75.224.0/19",
"110.76.0.0/19",
"110.76.48.0/20",
"119.42.224.0/19",
"203.209.224.0/19",
"43.227.188.0/22",
"45.113.40.0/22",
"8.150.0.0/17",
"2400:B200::/32",
}
isInRanges := utils.CheckIPInRanges(ip, ipRanges)
if isInRanges == true {
return CallBackIpResult{IsCallBack: true, CallBackName: "支付宝回调"}
}
return CallBackIpResult{IsCallBack: false, CallBackName: ""}
}