修正过滤器

This commit is contained in:
tsosunchia
2023-10-03 01:57:11 +08:00
parent ce1bae2125
commit f63ef9552e
2 changed files with 53 additions and 0 deletions

View File

@@ -78,6 +78,46 @@ func Filter(ip string) (*IPGeoData, bool) {
asn = ""
whois = "RFC1112"
isFiltered = true
case cidrRangeContains("fe80::/10", ip):
asn = ""
whois = "RFC4291"
isFiltered = true
case cidrRangeContains("ff00::/8", ip):
asn = ""
whois = "RFC4291"
isFiltered = true
case cidrRangeContains("fec0::/10", ip):
asn = ""
whois = "RFC3879"
isFiltered = true
case cidrRangeContains("fe00::/9", ip):
asn = ""
whois = "RFC4291"
isFiltered = true
case cidrRangeContains("::ffff:0:0/96", ip):
asn = ""
whois = "RFC4291"
isFiltered = true
case cidrRangeContains("64:ff9b::/96", ip):
asn = ""
whois = "RFC6052"
isFiltered = true
case cidrRangeContains("0::/96", ip):
asn = ""
whois = "RFC4291"
isFiltered = true
case cidrRangeContains("64:ff9b:1::/48", ip):
asn = ""
whois = "RFC6052"
isFiltered = true
case cidrRangeContains("2001:db8::/32", ip):
asn = ""
whois = "RFC3849"
isFiltered = true
case cidrRangeContains("2002::/16", ip):
asn = ""
whois = "RFC3056"
isFiltered = true
case net.ParseIP(ip).IsPrivate():
//rfc4193
if cidrRangeContains("fc00::/7", ip) {
@@ -121,6 +161,12 @@ func Filter(ip string) (*IPGeoData, bool) {
isFiltered = true
default:
}
// 判断是否为v6 且不在2000::/3
if net.ParseIP(ip).To4() == nil && !cidrRangeContains("2000::/3", ip) {
asn = ""
whois = "INVALID"
isFiltered = true
}
if !isFiltered {
return nil, false
} else {

View File

@@ -37,6 +37,13 @@ func TestXxx(t *testing.T) {
log.Println(process_id, ttl_r)
}
func TestFilter(t *testing.T) {
res, err := Filter("::1")
//打印whois信息
fmt.Println(res.Whois)
print(err)
}
func reverseID(id string) (int64, int64, error) {
ttl, _ := strconv.ParseInt(id[9:15], 2, 32)
//process ID