mirror of
https://github.com/lionsoul2014/ip2region.git
synced 2025-12-08 19:25:22 +00:00
apply the field-list filter
This commit is contained in:
parent
2735819b4f
commit
34e89d3f50
@ -38,6 +38,10 @@ func NewProcessor(srcFile string, dstFile string, fields []int) (*Processor, err
|
||||
return &Processor{
|
||||
srcHandle: srcHandle,
|
||||
dstHandle: dstHandle,
|
||||
|
||||
// filter fields index
|
||||
fields: fields,
|
||||
|
||||
segments: []*Segment{},
|
||||
}, nil
|
||||
}
|
||||
@ -60,7 +64,7 @@ func (p *Processor) loadSegments() error {
|
||||
return err
|
||||
}
|
||||
|
||||
// slog.Info("filtered", "region", region)
|
||||
// slog.Info("filtered", "source", seg.Region, "filtered", region)
|
||||
seg.Region = region
|
||||
p.segments = append(p.segments, seg)
|
||||
return nil
|
||||
|
||||
@ -121,6 +121,21 @@ func TestSplitSegmentV4(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegionFiltering(t *testing.T) {
|
||||
var line = "2001:1203:31:8000::|2001:1203:31:bfff:ffff:ffff:ffff:ffff||墨西哥|瓜纳华托州||||专线用户|"
|
||||
seg, err := SegmentFrom(line)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to parse segment '%s': %s", line, err)
|
||||
}
|
||||
|
||||
fReg, err := RegionFiltering(seg.Region, []int{1, 2, 4, 6})
|
||||
if err != nil {
|
||||
t.Fatalf("failed to filter region '%s': %s", seg.Region, err)
|
||||
}
|
||||
|
||||
fmt.Printf("region: %s, filtered: %s\n", seg.Region, fReg)
|
||||
}
|
||||
|
||||
func TestSplitSegmentV6(t *testing.T) {
|
||||
var str = "fec0::|ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff||瑞士|弗里堡州||||专线用户|IANA"
|
||||
seg, err := SegmentFrom(str)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user