datx

package module
v0.0.0-...-af996d4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 23, 2018 License: Apache-2.0 Imports: 8 Imported by: 4

README

重要提示

datx格式将全面升级为ipdb格式 IPDB格式解析代码

ipdb 格式优点

  • 可同时支持IPv4与IPv6
  • 可同时支持中文与英文
  • 查询性能大幅度提高

datx-go

IPIP.net官方支持datx格式的解析代码

安装 Installation

go get github.com/ipipdotnet/datx-go

示例 Usage


package main

import "github.com/ipipdotnet/datx-go"
import "fmt"

func main(){

    city, err := datx.NewCity("/path/to/17monipdb.datx") // For City Level IP Database
    if err == nil {
        fmt.Println(city.Find("8.8.8.8"))
        fmt.Println(city.Find("128.8.8.8"))
        fmt.Println(city.Find("255.255.255.255"))
        loc, err := city.FindLocation("27.190.252.103")
        if err == nil {
            fmt.Println(string(loc.ToJSON()))
            // Output:
            /*
            {
                "Country": "China",
                "Province": "Hebei",
                "City": "Tangshan",
                "Organization": "",
                "ISP": "ChinaTelecom",
                "Latitude": "39.635113",
                "Longitude": "118.175393",
                "TimeZone": "Asia/Shanghai",
                "TimeZone2": "UTC+8",
                "CityCode": "130200",
                "PhonePrefix": "86",
                "CountryCode": "CN",
                "ContinentCode": "AP",
                "IDC": "",
                "BaseStation": "",
                "Anycast": false
            }
            */
        }
    }
    dis, err := datx.NewDistrict("/path/to/quxian.datx") // Only China District IP Database
    if err == nil {
        fmt.Println(dis.Find("1.12.46.0"))
        fmt.Println(dis.Find("223.255.127.0"))
    }
    bst, err := datx.NewBaseStation("/path/to/station_ip.datx") // Only China Base Station IP Database
    if err == nil {
        fmt.Println(bst.Find("1.30.6.0"))
        fmt.Println(bst.Find("223.221.121.0"))
        fmt.Println(bst.Find("223.221.121.255"))
    }    
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrIPv4Format = errors.New("ipv4 format error")
View Source
var ErrNotFound = errors.New("not found")

Functions

This section is empty.

Types

type BaseStation

type BaseStation struct {
	// contains filtered or unexported fields
}

BaseStation ...

func NewBaseStation

func NewBaseStation(fn string) (*BaseStation, error)

NewBaseStation ...

func (*BaseStation) Find

func (db *BaseStation) Find(s string) ([]string, error)

Find ...

type City

type City struct {
	// contains filtered or unexported fields
}

City ...

func NewCity

func NewCity(name string) (*City, error)

NewCity ...

func (*City) Find

func (db *City) Find(s string) ([]string, error)

Find ...

func (*City) FindLocation

func (db *City) FindLocation(s string) (Location, error)

type District

type District struct {
	// contains filtered or unexported fields
}

District ...

func NewDistrict

func NewDistrict(fn string) (*District, error)

NewDistrict ...

func (*District) Find

func (db *District) Find(s string) ([]string, error)

Find ...

type Location

type Location struct {
	Country       string
	Province      string
	City          string
	Organization  string
	ISP           string
	Latitude      string
	Longitude     string
	TimeZone      string
	TimeZone2     string
	CityCode      string
	PhonePrefix   string
	CountryCode   string
	ContinentCode string
	IDC           string // IDC | VPN
	BaseStation   string // WIFI | BS (Base Station)
	CountryCode3  string
	EuropeanUnion bool
	CurrencyCode  string
	CurrencyName  string
	Anycast       bool
}

func (Location) ToJSON

func (l Location) ToJSON() []byte

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL