Is there a built-in function to calculate the broadcast address of a net.IPNet struct?
如何获取(IPv4)net.IPNet的广播地址?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
dougaimian1143 2016-03-23 00:15关注The link @Dsafds has the answer. Here for history's sake, and so you don't have to read through the thread yourself. Code is Mikio Hara's with minor modifications made by me.
func lastAddr(n *net.IPNet) (net.IP, error) { // works when the n is a prefix, otherwise... if n.IP.To4() == nil { return net.IP{}, errors.New("does not support IPv6 addresses.") } ip := make(net.IP, len(n.IP.To4())) binary.BigEndian.PutUint32(ip, binary.BigEndian.Uint32(n.IP.To4())|^binary.BigEndian.Uint32(net.IP(n.Mask).To4())) return ip, nil }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报