go语言处理ip地址 go语言api

go语言中怎么获取域名对应的ip地址package main
import (
"fmt"
"net"
"os"
)
func main() {
addrs, err := net.InterfaceAddrs()
if err != nil {
fmt.Println(err)
os.Exit(1)
}
for _, address := range addrs {
// 检查ip地址判断是否回环地址
if ipnet, ok := address.(*net.IPNet); ok!ipnet.IP.IsLoopback() {
if ipnet.IP.To4() != nil {
fmt.Println(ipnet.IP.String())
}
}
}
}
golang CIDR 与 IpMask 互转解析 在网络设备上,每家厂商表示ip的形式各不相同,但可能表示的是同一个意思,
列如
CIDR表示方法:IP地址/网络ID的位数,比如 10.95.134.192/29 ,其中用 29 位表示网络ID 。
Golang--获取本地IPGolang获取本地IP地址方法,目前了解两种,记录如下:
方法1:
Golang 绑定mac和ip地址 , 限制服务器实际业务:go 二进制文件在私有化部署中,需要对客户的服务器mac和ip进行绑定,系统只能运行在绑定的服务器上 。把mac和ip地址配置到config中 。
运行效果:系统可正常编译,正常访问,在用户Auth接口进行核对 。
//检验Mac和内网IP,测试环境不做校验
func (c *CommonBase)CheckMacAndIp()error {
ipCfg :=g.Cfg().GetString("machine.Ipaddr")
macCfg :=g.Cfg().GetString("machine.Macip")
if ipCfg =="127.0.0.1" {
return nil
}
macArray,_ :=gipv4.GetMacArray()
if len(macArray) ==0 {
return gerror.New("mac地址获取失败")
}
if garray.NewStrArrayFrom(macArray).Contains(macCfg) ==false {
return gerror.New("示授权的应用MAC , 请联系")
}
ipArray,_ :=gipv4.GetIpArray()
ipIntranetArray,_ :=gipv4.GetIntranetIpArray()
if len(ipArray) ==0 len(ipIntranetArray) ==0 {
return gerror.New("ip地址获取失败")
}
if garray.NewStrArrayFrom(ipArray).Merge(ipIntranetArray).Contains(ipCfg) ==false {
return gerror.New("示授权的应用IP,请联系")
}
return nil
}
【go语言处理ip地址 go语言api】 项目使用GoFrame框架1.6 。考虑到客户可能会对内存数据做分析破解 , 可以把mac和ip地址做AES加密 。
关于go语言处理ip地址和go语言api的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读