diff --git a/pkg/iplibrary/reader.go b/pkg/iplibrary/reader.go index d41cb72..05a2d88 100644 --- a/pkg/iplibrary/reader.go +++ b/pkg/iplibrary/reader.go @@ -20,8 +20,8 @@ type Reader struct { regionMap map[string]*ipRegion // 缓存重复的区域用来节约内存 - ipV4Items []*ipv4Item - ipV6Items []*ipv6Item + ipV4Items []ipv4Item + ipV6Items []ipv6Item lastIPFrom uint64 lastCountryId uint16 @@ -162,11 +162,11 @@ func (this *Reader) Meta() *Meta { return this.meta } -func (this *Reader) IPv4Items() []*ipv4Item { +func (this *Reader) IPv4Items() []ipv4Item { return this.ipV4Items } -func (this *Reader) IPv6Items() []*ipv6Item { +func (this *Reader) IPv6Items() []ipv6Item { return this.ipV6Items } @@ -296,13 +296,13 @@ func (this *Reader) parseLine(line []byte) error { } if version == "4" { - this.ipV4Items = append(this.ipV4Items, &ipv4Item{ + this.ipV4Items = append(this.ipV4Items, ipv4Item{ IPFrom: uint32(ipFrom), IPTo: uint32(ipTo), Region: region, }) } else { - this.ipV6Items = append(this.ipV6Items, &ipv6Item{ + this.ipV6Items = append(this.ipV6Items, ipv6Item{ IPFrom: ipFrom, IPTo: ipTo, Region: region, diff --git a/pkg/iplibrary/reader_result.go b/pkg/iplibrary/reader_result.go index effc060..034a557 100644 --- a/pkg/iplibrary/reader_result.go +++ b/pkg/iplibrary/reader_result.go @@ -215,8 +215,12 @@ func (this *QueryResult) realCountryId() uint16 { switch item := this.item.(type) { case *ipv4Item: return item.Region.CountryId + case ipv4Item: + return item.Region.CountryId case *ipv6Item: return item.Region.CountryId + case ipv6Item: + return item.Region.CountryId } } @@ -228,8 +232,12 @@ func (this *QueryResult) realProvinceId() uint16 { switch item := this.item.(type) { case *ipv4Item: return item.Region.ProvinceId + case ipv4Item: + return item.Region.ProvinceId case *ipv6Item: return item.Region.ProvinceId + case ipv6Item: + return item.Region.ProvinceId } } @@ -241,8 +249,12 @@ func (this *QueryResult) realCityId() uint32 { switch item := this.item.(type) { case *ipv4Item: return item.Region.CityId + case ipv4Item: + return item.Region.CityId case *ipv6Item: return item.Region.CityId + case ipv6Item: + return item.Region.CityId } } @@ -254,8 +266,12 @@ func (this *QueryResult) realTownId() uint32 { switch item := this.item.(type) { case *ipv4Item: return item.Region.TownId + case ipv4Item: + return item.Region.TownId case *ipv6Item: return item.Region.TownId + case ipv6Item: + return item.Region.TownId } } @@ -267,8 +283,12 @@ func (this *QueryResult) realProviderId() uint16 { switch item := this.item.(type) { case *ipv4Item: return item.Region.ProviderId + case ipv4Item: + return item.Region.ProviderId case *ipv6Item: return item.Region.ProviderId + case ipv6Item: + return item.Region.ProviderId } }