golang CIDR 与 IpMask 互转解析 在网络设备上go语言IP地址转换,每家厂商表示ipgo语言IP地址转换的形式各不相同go语言IP地址转换 , 但可能表示的是同一个意思go语言IP地址转换 ,
列如
CIDR表示方法:IP地址/网络ID的位数,比如 10.95.134.192/29 ,其中用 29 位表示网络ID 。
Golang 绑定mac和ip地址,限制服务器实际业务:go 二进制文件在私有化部署中go语言IP地址转换,需要对客户go语言IP地址转换的服务器mac和ip进行绑定,系统只能运行在绑定的服务器上 。把mac和ip地址配置到config中 。
运行效果:系统可正常编译,正常访问,在用户Auth接口进行核对 。
【go语言IP地址转换 go语言配置】 //检验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
}
项目使用GoFrame框架1.6 。考虑到客户可能会对内存数据做分析破解,可以把mac和ip地址做AES加密 。
go程序调用本机不同ip获取本机ipgo语言IP地址转换的方法:
//获取ip
func externalIP() (net.IP, error) {
ifaces, err := net.Interfaces()
if err != nil {
return nil, err
}
for _, iface := range ifaces {
if iface.Flagsnet.FlagUp == 0 {
continue // interface down
}
if iface.Flagsnet.FlagLoopback != 0 {
continue // loopback interface
}
addrs, err := iface.Addrs()
if err != nil {
return nil, err
}
for _, addr := range addrs {
ip := getIpFromAddr(addr)
if ip == nil {
continue
}
return ip, nil
}
}
return nil, errors.New("connected to the network?")
}
//获取ip
func getIpFromAddr(addr net.Addr) net.IP {
var ip net.IP
switch v := addr.(type) {
case *net.IPNet:
ip = v.IP
case *net.IPAddr:
ip = v.IP
}
if ip == nil || ip.IsLoopback() {
return nil
}
ip = ip.To4()
if ip == nil {
return nil // not an ipv4 address
}
return ip
}
调用:
func main() {
ip, err := externalIP()
if err != nil {
fmt.Println(err)
}
fmt.Printf(ip.String())
}
结果:
导致获取出来go语言IP地址转换的IP可能不一定是想要的 。需要通过判断net.FlagUp标志进行确... 才能调用stop接口,不然有几率崩溃,asio的关闭流程的线程安全性,貌似需要使...
关于go语言IP地址转换和go语言配置的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 单机游戏坐骑,好玩的坐骑游戏
- 硬盘拆了怎么恢复数据,硬盘拆了是不是安全了
- qt如何执行python应用程序,qt怎么调用python程序
- 天使飞行街机游戏,街机天使之翼
- mysql错误怎么知道 mysql 错误码大全
- chatgpt谈外星人,官方报道外星人
- 诈骗网页服务器在国外,境外网站被骗
- sap创建索引,sap 表创建索引
- mysql怎么启服务 mysql服务开启命令