优化域名检测
This commit is contained in:
@ -90,7 +90,7 @@ func (c *Checker) start() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
//log.Printf("checker started")
|
//log.Printf("checker started")
|
||||||
@ -100,7 +100,7 @@ func (c *Checker) start() {
|
|||||||
go func(item CheckerItem) {
|
go func(item CheckerItem) {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
if c.isNeedCheck(item) {
|
if c.isNeedCheck(item) {
|
||||||
@ -176,17 +176,9 @@ func (c *Checker) domainIsInMap(address string, blockedMap bool) bool {
|
|||||||
}
|
}
|
||||||
domainSlice := strings.Split(u.Hostname(), ".")
|
domainSlice := strings.Split(u.Hostname(), ".")
|
||||||
if len(domainSlice) > 1 {
|
if len(domainSlice) > 1 {
|
||||||
subSlice := domainSlice[:len(domainSlice)-1]
|
checkDomain := ""
|
||||||
topDomain := domainSlice[len(domainSlice)-1:][0]
|
for i := len(domainSlice) - 1; i >= 0; i-- {
|
||||||
checkDomain := topDomain
|
checkDomain = strings.Join(domainSlice[i:], ".")
|
||||||
if !blockedMap && c.directMap.Has(checkDomain) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
if blockedMap && c.blockedMap.Has(checkDomain) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
for i := len(subSlice) - 1; i >= 0; i-- {
|
|
||||||
checkDomain = subSlice[i] + "." + checkDomain
|
|
||||||
if !blockedMap && c.directMap.Has(checkDomain) {
|
if !blockedMap && c.directMap.Has(checkDomain) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user