登录
首页 >  Golang >  Go问答

IP地址库存统计

来源:stackoverflow

时间:2024-02-28 19:00:18 131浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《IP地址库存统计》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

我想查找某个范围 (cidr) 中的剩余 ip。 例如:

prefixLen, bits := n.Mask.Size()
return 1 << (uint64(bits) - uint64(prefixLen)), nil

这将返回 n*net.ipnet 范围内的 ip 数量。 但是,如果我已经给出了几个地址,并且想知道从某些 ip 地址“开始”还剩多少个地址,我该怎么做?


解决方案


这是你可以做的事情

package main

import (
    "fmt"
    "net"

)
func inet_aton(ip string) uint32 {
var rv uint32
b := net.ParseIP(ip).To4()
rv=uint32(b[0]) << 24
rv=rv+uint32(b[1]) << 16
rv=rv+uint32(b[2]) << 8
rv=rv+uint32(b[3])
return rv
}

func main() {
    start := inet_aton("192.168.0.1")   //192.168.2.0/20 start
    fin := inet_aton("192.168.15.255")  //ditto end
    here := inet_aton("192.168.15.248") //current allocation

    fmt.Printf("you have %d remaining\n",(fin-start) - (here-start))
}

今天关于《IP地址库存统计》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>