stdlize the IP version global vars to IPvx
This commit is contained in:
parent
aade8810ba
commit
d3ef2dcc28
|
|
@ -283,13 +283,13 @@ func testSearch() {
|
||||||
versionNo := binary.LittleEndian.Uint16(header[0:])
|
versionNo := binary.LittleEndian.Uint16(header[0:])
|
||||||
if versionNo == 2 {
|
if versionNo == 2 {
|
||||||
// old xdb file
|
// old xdb file
|
||||||
version = xdb.V4
|
version = xdb.IPv4
|
||||||
} else if versionNo == 3 {
|
} else if versionNo == 3 {
|
||||||
ipNo := int(binary.LittleEndian.Uint16(header[16:]))
|
ipNo := int(binary.LittleEndian.Uint16(header[16:]))
|
||||||
if ipNo == xdb.V4.Id {
|
if ipNo == xdb.IPv4.Id {
|
||||||
version = xdb.V4
|
version = xdb.IPv4
|
||||||
} else if ipNo == xdb.V6.Id {
|
} else if ipNo == xdb.IPv6.Id {
|
||||||
version = xdb.V6
|
version = xdb.IPv6
|
||||||
} else {
|
} else {
|
||||||
slog.Error("invalid ip version", "id", ipNo)
|
slog.Error("invalid ip version", "id", ipNo)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,11 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
IPv4VersionNo = 4
|
||||||
|
IPv6VersionNo = 6
|
||||||
|
)
|
||||||
|
|
||||||
type Version struct {
|
type Version struct {
|
||||||
Id int
|
Id int
|
||||||
Name string
|
Name string
|
||||||
|
|
@ -17,14 +22,14 @@ type Version struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
VX = &Version{}
|
IPvx = &Version{}
|
||||||
V4 = &Version{
|
IPv4 = &Version{
|
||||||
Id: 4,
|
Id: 4,
|
||||||
Name: "IPv4",
|
Name: "IPv4",
|
||||||
Bytes: 4,
|
Bytes: 4,
|
||||||
SegmentIndexSize: 14, // 4 + 4 + 2 + 4
|
SegmentIndexSize: 14, // 4 + 4 + 2 + 4
|
||||||
}
|
}
|
||||||
V6 = &Version{
|
IPv6 = &Version{
|
||||||
Id: 6,
|
Id: 6,
|
||||||
Name: "IPv6",
|
Name: "IPv6",
|
||||||
Bytes: 16,
|
Bytes: 16,
|
||||||
|
|
@ -35,23 +40,23 @@ var (
|
||||||
func VersionFromIP(ip string) (*Version, error) {
|
func VersionFromIP(ip string) (*Version, error) {
|
||||||
bytes, err := ParseIP(ip)
|
bytes, err := ParseIP(ip)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return VX, fmt.Errorf("parse ip fail: %w", err)
|
return IPvx, fmt.Errorf("parse ip fail: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(bytes) == 4 {
|
if len(bytes) == 4 {
|
||||||
return V4, nil
|
return IPv4, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return V6, nil
|
return IPv6, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func VersionFromName(name string) (*Version, error) {
|
func VersionFromName(name string) (*Version, error) {
|
||||||
switch strings.ToUpper(name) {
|
switch strings.ToUpper(name) {
|
||||||
case "V4", "IPV4":
|
case "V4", "IPV4":
|
||||||
return V4, nil
|
return IPv4, nil
|
||||||
case "V6", "IPV6":
|
case "V6", "IPV6":
|
||||||
return V6, nil
|
return IPv6, nil
|
||||||
default:
|
default:
|
||||||
return VX, fmt.Errorf("invalid version name `%s`", name)
|
return IPvx, fmt.Errorf("invalid version name `%s`", name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue