IP库阶段性提交(未完成)

This commit is contained in:
刘祥超
2022-08-14 16:33:11 +08:00
parent 4ddc1ac89f
commit debf4a5249
4 changed files with 17 additions and 9 deletions

View File

@@ -1 +1 @@
ip.db
ip.db

Binary file not shown.

View File

@@ -169,14 +169,15 @@ func (this *Reader) parse(data []byte) (left []byte, err error) {
return nil, errors.New("invalid ip version '" + string(line) + "'")
}
var ipFrom uint64
var ipTo uint64
if len(pieces[2]) == 0 {
pieces[2] = pieces[1]
}
var ipFrom = types.Uint64(pieces[1])
var ipTo = types.Uint64(pieces[2])
if ipFrom > ipTo {
ipFrom, ipTo = ipTo, ipFrom
ipFrom = types.Uint64(pieces[1])
ipTo = types.Uint64(pieces[2])
} else {
ipFrom = types.Uint64(pieces[1])
ipTo = types.Uint64(pieces[2]) + ipFrom
}
if version == "4" {

View File

@@ -96,13 +96,20 @@ func (this *Writer) Write(ipFrom string, ipTo string, countryId int64, provinceI
}
// 1
pieces = append(pieces, types.String(configutils.IP2Long(fromIP)))
var fromIPLong = configutils.IP2Long(fromIP)
var toIPLong = configutils.IP2Long(toIP)
if toIPLong < fromIPLong {
fromIPLong, toIPLong = toIPLong, fromIPLong
}
pieces = append(pieces, types.String(fromIPLong))
if ipFrom == ipTo {
// 2
pieces = append(pieces, "")
} else {
// 2
pieces = append(pieces, types.String(configutils.IP2Long(toIP)))
pieces = append(pieces, types.String(toIPLong-fromIPLong))
}
// 3