在项目中经常遇到通过ip获取区域信息,geoip无疑是一个很好的选择https://dev.maxmind.com/geoip/, 大家在这里可以下载IP库 。还有在ip中经常遇到字符串和数字的转换
GO
ip数字和字符的转换我们可以用 github.com/thinkeridea/go-extend/exnet包,获取ip信息可以用github.com/oschwald/geoip2-golang,代码如下:
package main
import (
"fmt"
"log"
"net"
"github.com/oschwald/geoip2-golang"
"github.com/thinkeridea/go-extend/exnet"
)
func main() {
//n, _ := exnet.IPString2Long(ip)
//s, _ := exnet.Long2IPString(ip)
ip := "171.223.95.14"
n, _ := exnet.IPString2Long(ip)
fmt.Println(n)
printIpInfo(ip)
}
func printIpInfo(ipstr string) {
db, err := geoip2.Open("./GeoLite2-City.mmdb")
if err != nil {
log.Fatal(err)
}
defer db.Close()
ip := net.ParseIP(ipstr)
record, err := db.City(ip)
if err !