diff --git a/filters/akamai.go b/filters/akamai.go deleted file mode 100644 index 94ed953..0000000 --- a/filters/akamai.go +++ /dev/null @@ -1,52 +0,0 @@ -package filters - -import ( - "bufio" - "io/ioutil" - "net" - "os" - "path/filepath" - "runtime" - - "github.com/sirupsen/logrus" -) - -var ( - _, b, _, _ = runtime.Caller(0) - basepath = filepath.Dir(b) -) - -// RunFilters runs the battery of filters for an IP. -func RunIPFilters(ip net.IP) bool { - if ip.To4() != nil { - path := basepath + "/data/ipv4/" - sliceIPv4, err := ioutil.ReadDir(path) - if err != nil { - logrus.Warn("filters#ReadDir#ipv4", err) - } - - for _, name := range sliceIPv4 { - f, err := os.OpenFile(path+name.Name(), 1, 0644) - if err != nil { - logrus.Warn("filters#OpenFile#", err) - } - scanner := bufio.NewScanner(f) - for scanner.Scan() { - _, ipNet, err := net.ParseCIDR(scanner.Text()) - if err != nil { - continue - } - if ipNet.Contains(ip) { - return true - } - } - } - } else if ip.To16() != nil { - // run ipv6 filter battery - } else { - logrus.Error("filters#invalid IP format") - return false - } - - return false -} diff --git a/filters/main.go b/filters/main.go index f9ebf35..3619528 100644 --- a/filters/main.go +++ b/filters/main.go @@ -2,43 +2,52 @@ package filters import ( "bufio" + "io/ioutil" "net" "os" + "path/filepath" + "runtime" "github.com/sirupsen/logrus" ) -// IsAkamai checks for the presence of the given IP in the Akamain CIDR. -func IsAkamai(ip net.IP) bool { - var file *os.File - var err error +var ( + _, b, _, _ = runtime.Caller(0) + basepath = filepath.Dir(b) +) + +// RunIPFilters runs the battery of filters for an IP. +func RunIPFilters(ip net.IP) bool { if ip.To4() != nil { - file, err = os.Open("filters/data/akamai.cidr") + path := basepath + "/data/ipv4/" + sliceIPv4, err := ioutil.ReadDir(path) if err != nil { - logrus.Fatal("filters#IsAkamai", err) + logrus.Warn("filters#ReadDir#ipv4", err) + } + + for _, name := range sliceIPv4 { + f, err := os.OpenFile(path+name.Name(), 1, 0644) + if err != nil { + logrus.Warn("filters#OpenFile#", err) + } + scanner := bufio.NewScanner(f) + for scanner.Scan() { + _, ipNet, err := net.ParseCIDR(scanner.Text()) + if err != nil { + continue + } + if ipNet.Contains(ip) { + return true + } + } } } else if ip.To16() != nil { - file, err = os.Open("filters/data/akamaiv6.cidr") - if err != nil { - logrus.Fatal("filters#IsAkamai", err) - } + // run ipv6 filter battery } else { - logrus.Error("filters#IsAkamai#invalid ip format") + logrus.Error("filters#invalid IP format") return false } - defer file.Close() - scanner := bufio.NewScanner(file) - for scanner.Scan() { - _, ipNet, err := net.ParseCIDR(scanner.Text()) - if err != nil { - continue - } - if ipNet.Contains(ip) { - return true - } - - } return false }