ip_geo
local query providers:
- ip2l
[ip2location](https://lite.ip2location.com/) get download url(downloadKey and download file code) from website.
remote query providers:
-ipdata
[ipdata.co](https://ipdata.co/) get access key from website.
How to use
package main
import (
"log"
"github.com/coreservice-io/ip_geo/local"
"github.com/coreservice-io/ip_geo/remote"
"github.com/coreservice-io/logrus_log"
)
func main() {
//local
useLocalDB()
//new instance ipStackAndIp2Location
useRemote()
}
func useLocalDB() {
ip2lDbFile := "example/db_file/IP2LOCATION-LITE-DB1.BIN"
ip2lUpgradeUrl := ""
logger, err := logrus_log.New("logs", 2, 20, 30)
if err != nil {
log.Fatalln(err)
}
//new instance ip2Location
local, err := local.NewIp2L(logger, ip2lDbFile, ip2lUpgradeUrl, 2*3600*24, nil)
if err != nil {
log.Fatalln(err)
}
log.Println(local.GetLocalInfo("216.24.189.125"))
log.Println(local.GetLocalInfo("192.168.189.125"))
}
func useRemote() {
ipDataKey := "" //key in https://dashboard.ipdata.co/index.html
redisConfig := remote.RedisConfig{
Addr: "127.0.0.1",
Port: 6379,
Prefix: "ip_geo:ipdata:",
UserName: "",
UseTLS: false,
}
logger, err := logrus_log.New("logs", 2, 20, 30)
if err != nil {
log.Fatalln(err)
}
remote_client, err := remote.NewIpData(ipDataKey, redisConfig, logger)
if err != nil {
log.Fatalln(err)
}
ipInfo, err := remote_client.GetRemoteInfo("124.77.18.232")
if err != nil {
log.Println(err)
} else {
log.Println(ipInfo)
}
}