如何获取下一个IP地址?

我正在考虑调用net.IP.String(), strings.Split(ip, "."),一些代码来计算所有的极端情况,最后net.ParseIP(s). 有没有更好的方法?下面是我当前实现的代码(没有处理特殊情况)。


package main


import (

    "fmt"

    "net"

    "strconv"

    "strings"

)


func main() {

    ip := net.ParseIP("127.1.0.0")

    next, err := NextIP(ip)

    if err != nil {

        panic(err)

    }

    fmt.Println(ip, next)

}


func NextIP(ip net.IP) (net.IP, error) {

    s := ip.String()

    sa := strings.Split(s, ".")

    i, err := strconv.Atoi(sa[2])

    if err != nil {

        return nil, err

    }

    i++

    sa[3] = strconv.Itoa(i)

    s = strings.Join(sa, ".")

    return net.ParseIP(s), nil

}


梵蒂冈之花
浏览 134回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go