ip_geo

module
v0.0.21 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2022 License: MIT

README

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)
	}

}







Directories

Path Synopsis

Jump to

Keyboard shortcuts

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