From d1e35db6a5e6201b41d270f127cdf8c2b5ed40cd Mon Sep 17 00:00:00 2001 From: yourok <8yourok8@mail.ru> Date: Fri, 14 Feb 2020 12:44:31 +0300 Subject: [PATCH] add block ip --- src/server/utils/BlockedIP.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/server/utils/BlockedIP.go diff --git a/src/server/utils/BlockedIP.go b/src/server/utils/BlockedIP.go new file mode 100644 index 0000000..61edc04 --- /dev/null +++ b/src/server/utils/BlockedIP.go @@ -0,0 +1,35 @@ +package utils + +import ( + "bufio" + "io/ioutil" + "path/filepath" + "strings" + + "server/settings" + + "github.com/anacrolix/torrent/iplist" +) + +func ReadBlockedIP() (ranger iplist.Ranger, err error) { + buf, err := ioutil.ReadFile(filepath.Join(settings.Path, "blocklist")) + if err != nil { + return nil, err + } + scanner := bufio.NewScanner(strings.NewReader(string(buf))) + var ranges []iplist.Range + for scanner.Scan() { + r, ok, err := iplist.ParseBlocklistP2PLine(scanner.Bytes()) + if err != nil { + return nil, err + } + if ok { + ranges = append(ranges, r) + } + } + err = scanner.Err() + if len(ranges) > 0 { + ranger = iplist.New(ranges) + } + return +}