mirror of
https://github.com/nxtrace/NTrace-core.git
synced 2025-08-12 06:26:39 +00:00
修正过滤器
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user