Move RunIPFilters() to filters/main.go
This commit is contained in:
parent
f0a6715acd
commit
3a3637c847
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue