mirror of
https://github.com/lionsoul2014/ip2region.git
synced 2025-12-08 19:25:22 +00:00
add version flag and use it for the searcher create
This commit is contained in:
parent
34e89d3f50
commit
33beaf96c9
@ -364,7 +364,7 @@ commands:
|
||||
|
||||
func testBench() {
|
||||
var err error
|
||||
var dbFile, srcFile, logLevel = "", "", ""
|
||||
var dbFile, srcFile, ipVersion, logLevel = "", "", "", ""
|
||||
var ignoreError = false
|
||||
var fErr = iterateFlags(func(key string, val string) error {
|
||||
switch key {
|
||||
@ -372,6 +372,8 @@ func testBench() {
|
||||
dbFile = val
|
||||
case "src":
|
||||
srcFile = val
|
||||
case "version":
|
||||
ipVersion = val
|
||||
case "log-level":
|
||||
logLevel = val
|
||||
case "ignore-error":
|
||||
@ -397,11 +399,23 @@ func testBench() {
|
||||
fmt.Printf("options:\n")
|
||||
fmt.Printf(" --db string ip2region binary xdb file path\n")
|
||||
fmt.Printf(" --src string source ip text file path\n")
|
||||
fmt.Printf(" --version string IP version, options: ipv4/ipv6, specify this flag so you don't get confused \n")
|
||||
fmt.Printf(" --log-level string set the log level, options: debug/info/warn/error\n")
|
||||
fmt.Printf(" --ignore-error bool keep going if bench failed\n")
|
||||
return
|
||||
}
|
||||
|
||||
// check and define the IP version
|
||||
var version *xdb.Version = nil
|
||||
if len(ipVersion) < 2 {
|
||||
slog.Error("please specify the ip version with flag --version, ipv4 or ipv6 ?")
|
||||
return
|
||||
} else if v, err := xdb.VersionFromName(ipVersion); err != nil {
|
||||
slog.Error("failed to parse version name", "error", err)
|
||||
} else {
|
||||
version = v
|
||||
}
|
||||
|
||||
// check and apply the log level
|
||||
err = applyLogLevel(logLevel)
|
||||
if err != nil {
|
||||
@ -409,7 +423,7 @@ func testBench() {
|
||||
return
|
||||
}
|
||||
|
||||
searcher, err := xdb.NewSearcher(xdb.V4, dbFile)
|
||||
searcher, err := xdb.NewSearcher(version, dbFile)
|
||||
if err != nil {
|
||||
fmt.Printf("failed to create searcher with `%s`: %s\n", dbFile, err)
|
||||
return
|
||||
@ -429,9 +443,9 @@ func testBench() {
|
||||
var iErr = xdb.IterateSegments(handle, nil, func(seg *xdb.Segment) error {
|
||||
var l = fmt.Sprintf("%d|%d|%s", seg.StartIP, seg.EndIP, seg.Region)
|
||||
slog.Debug("try to bench", "segment", l)
|
||||
mip := xdb.IPMiddle(seg.StartIP, seg.EndIP)
|
||||
for _, ip := range [][]byte{
|
||||
seg.StartIP, xdb.IPMiddle(seg.EndIP, mip), mip, xdb.IPMiddle(mip, seg.EndIP), seg.EndIP} {
|
||||
// mip := xdb.IPMiddle(seg.StartIP, seg.EndIP)
|
||||
// for _, ip := range [][]byte{seg.StartIP, xdb.IPMiddle(seg.EndIP, mip), mip, xdb.IPMiddle(mip, seg.EndIP), seg.EndIP} {
|
||||
for _, ip := range [][]byte{seg.StartIP, seg.EndIP} {
|
||||
slog.Debug("|-try to bench", "ip", xdb.IP2String(ip))
|
||||
r, _, err := searcher.Search(ip)
|
||||
if err != nil {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user