Golang实现将IP地址转换为十进制

前端之家收集整理的这篇文章主要介绍了Golang实现将IP地址转换为十进制前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

将IP地址转换为十进制工具IPConversionTools

我经常会有吧IP/Gateway/Mask/DNS这些IP地址信息转换为十进制的;
就像这么这样的

192.168.100.200  IP地址
3232261320       十进制

我之前都是手动打开计算器;然后一个一个计算

像这样

IP地址: 192.168.100.200
十六进制:C0  A8   64  C8
然后将C0A864C8转换回十进制3232261320

当然我们也可以这样来计算

IP地址:192.168.100.200
1. 192*16777216 =3221225472
2. 168*65536=11010048
3. 100*256=256000
4. 200*1=200
5. 上面加起来=3232261320

工具上面的规则开始写代码

InputIp函数

写一个控制台获取用户输入IP地址的函数

func InputIp() {
    var str string
    fmt.Printf("请输入IP/Mask/Geteway/DNS: ")
    fmt.Scanf("%s",&str)
    fmt.Println("你输入的IP地址:",str)
    x := strings.Split(str,".")
    //b0,_ := strconv.Atoi(x[0]) //字符串转int型
    b0,_ := strconv.ParseInt(x[0],10,0) //字符串转Int64型
    b1,_ := strconv.ParseInt(x[1],0)
    b2,_ := strconv.ParseInt(x[2],0)
    b3,_ := strconv.ParseInt(x[3],0)
    CalculateIp(b0,b1,b2,b3)
}

1. 这个代码就是在控制台提示用户输入IP地址;
2. 然后用Split进行切割;
3. 然后用x[0]这样来去IP地址的4个部分
4. 接着吧转换为int64类型

CalculateIp函数

在写一个吧IP转换成十进制的函数

func CalculateIp(b0,b3 int64) {
    /*
     *用于将IP地址转换成10进制
     *需要分别输入IP地址的4段内容
     *由于计算之后的数字很大所以需要用到int64类型
     *分别计算IP地址的4段;然后相加即可
     */
    number0 := b0 * 16777216 //256*256*256
    number1 := b1 * 65536    //256*256
    number2 := b2 * 256
    number3 := b3 * 1
    sum := number0 + number1 + number2 + number3
    fmt.Println("转换之后的十进制IP地址:",sum)
}

1. 上面的代码就更简单了;
2. 吧4段IP地址分别计算;然后相加即可

运行结果如下

代码地址

Github IPConversionTools

猜你在找的Go相关文章