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,7 +38,11 @@ func NewProcessor(srcFile string, dstFile string, fields []int) (*Processor, err
|
|||||||
return &Processor{
|
return &Processor{
|
||||||
srcHandle: srcHandle,
|
srcHandle: srcHandle,
|
||||||
dstHandle: dstHandle,
|
dstHandle: dstHandle,
|
||||||
segments: []*Segment{},
|
|
||||||
|
// filter fields index
|
||||||
|
fields: fields,
|
||||||
|
|
||||||
|
segments: []*Segment{},
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,7 +64,7 @@ func (p *Processor) loadSegments() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// slog.Info("filtered", "region", region)
|
// slog.Info("filtered", "source", seg.Region, "filtered", region)
|
||||||
seg.Region = region
|
seg.Region = region
|
||||||
p.segments = append(p.segments, seg)
|
p.segments = append(p.segments, seg)
|
||||||
return nil
|
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) {
|
func TestSplitSegmentV6(t *testing.T) {
|
||||||
var str = "fec0::|ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff||瑞士|弗里堡州||||专线用户|IANA"
|
var str = "fec0::|ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff||瑞士|弗里堡州||||专线用户|IANA"
|
||||||
seg, err := SegmentFrom(str)
|
seg, err := SegmentFrom(str)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user