From fb00fa95548aa538d67e2a38b258040af578db94 Mon Sep 17 00:00:00 2001 From: zu1k Date: Mon, 15 Aug 2022 09:31:05 +0800 Subject: [PATCH] feat: Remove ip2region old db format support Signed-off-by: zu1k --- pkg/ip2region/ip2region.go | 69 ++++++++++---------------------------- 1 file changed, 18 insertions(+), 51 deletions(-) diff --git a/pkg/ip2region/ip2region.go b/pkg/ip2region/ip2region.go index b192149..505cb8d 100644 --- a/pkg/ip2region/ip2region.go +++ b/pkg/ip2region/ip2region.go @@ -8,8 +8,8 @@ import ( "os" "strings" - "github.com/lionsoul2014/ip2region/binding/golang/ip2region" "github.com/lionsoul2014/ip2region/binding/golang/xdb" + "github.com/zu1k/nali/pkg/common" "github.com/zu1k/nali/pkg/download" ) @@ -21,7 +21,6 @@ var DownloadUrls = []string{ type Ip2Region struct { seacher *xdb.Searcher - db_old *ip2region.Ip2Region } func NewIp2Region(filePath string) (*Ip2Region, error) { @@ -34,35 +33,24 @@ func NewIp2Region(filePath string) (*Ip2Region, error) { } } - switch { - case strings.HasSuffix(filePath, ".xdb"): - f, err := os.OpenFile(filePath, os.O_RDONLY, 0400) - if err != nil { - return nil, err - } - defer f.Close() - - data, err := ioutil.ReadAll(f) - if err != nil { - return nil, err - } - searcher, err := xdb.NewWithBuffer(data) - if err != nil { - fmt.Printf("无法解析 ip2region xdb 数据库: %s\n", err) - return nil, err - } - return &Ip2Region{ - seacher: searcher, - }, nil - default: - region, err := ip2region.New(filePath) - if err != nil { - return nil, err - } - return &Ip2Region{ - db_old: region, - }, nil + f, err := os.OpenFile(filePath, os.O_RDONLY, 0400) + if err != nil { + return nil, err } + defer f.Close() + + data, err := ioutil.ReadAll(f) + if err != nil { + return nil, err + } + searcher, err := xdb.NewWithBuffer(data) + if err != nil { + fmt.Printf("无法解析 ip2region xdb 数据库: %s\n", err) + return nil, err + } + return &Ip2Region{ + seacher: searcher, + }, nil } func (db Ip2Region) Find(query string, params ...string) (result fmt.Stringer, err error) { @@ -75,27 +63,6 @@ func (db Ip2Region) Find(query string, params ...string) (result fmt.Stringer, e Country: strings.ReplaceAll(res, "|0", ""), }, nil } - } else if db.db_old != nil { - ip, err := db.db_old.MemorySearch(query) - if err != nil { - return nil, err - } - - area := "" - if ip.Province != "0" { - area = ip.Province - } - if ip.City != "0" && strings.EqualFold(ip.City, ip.Province) { - area = area + " " + ip.Province - } - if ip.ISP != "0" { - area = area + " " + ip.ISP - } - - return common.Result{ - Country: ip.Country, - Area: area, - }, nil } return nil, errors.New("ip2region 未初始化")