MCPcopy
hub / github.com/txthinking/brook / ListHasIP

Function ListHasIP

list.go:63–118  ·  view source on GitHub ↗
(c4, c6 []*net.IPNet, i net.IP, c *cache.Cache, geo []string)

Source from the content-addressed store, hash-verified

61}
62
63func ListHasIP(c4, c6 []*net.IPNet, i net.IP, c *cache.Cache, geo []string) bool {
64 if c4 == nil && c6 == nil && len(geo) == 0 {
65 return false
66 }
67 if c != nil {
68 any, ok := c.Get(i.String())
69 if ok {
70 return any.(bool)
71 }
72 }
73 if len(geo) != 0 {
74 bs := iploc.Country(i)
75 if bs != "" {
76 for _, v := range geo {
77 if v == bs {
78 if c != nil {
79 c.Set(i.String(), true, 24*time.Hour)
80 }
81 return true
82 }
83 }
84 }
85 }
86 if i.To4() != nil {
87 if c4 == nil {
88 return false
89 }
90 ii := i.To4()
91 for _, v := range c4 {
92 if v.Contains(ii) {
93 if c != nil {
94 c.Set(i.String(), true, 24*time.Hour)
95 }
96 return true
97 }
98 }
99 }
100 if i.To4() == nil {
101 if c6 == nil {
102 return false
103 }
104 ii := i.To16()
105 for _, v := range c6 {
106 if v.Contains(ii) {
107 if c != nil {
108 c.Set(i.String(), true, 24*time.Hour)
109 }
110 return true
111 }
112 }
113 }
114 if c != nil {
115 c.Set(i.String(), false, 24*time.Hour)
116 }
117 return false
118}
119
120func ReadDomainList(url string) (map[string]byte, error) {

Callers 1

TouchBrookMethod · 0.92

Calls 2

GetMethod · 0.80
SetMethod · 0.80

Tested by

no test coverage detected