我正在尝试通过以下方式获取IP地址和子网掩码
ifaces, err := net.Interfaces()
for _, iface := range ifaces{
localip, _ = iface.Addrs()
}
但是,我期待将子网作为类似于
255.255.255.0
而不是/24
的东西来获得。我该怎么办?如果没有模块可以执行此操作,那么作为程序执行此操作的逻辑是什么? 最佳答案
使用逻辑运算符从某些stackoverflow帖子本身借来的。
mask = (0xFFFFFFFF << (32 - 24)) & 0xFFFFFFFF; //24 is the netmask
var dmask uint64
dmask = 32
localmask := make([]uint64, 0, 4)
for i := 1; i <= 4; i++{
tmp := mask >> (dmask - 8) & 0xFF
localmask = append(localmask, tmp)
dmask -= 8
}
fmt.Println(localmask)