加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-16 18:48:56 所属栏目:大数据 来源:网络整理
导读:将IP地址转换为十进制工具IPConversionTools 我经常会有吧IP/Gateway/Mask/DNS这些IP地址信息转换为十进制的; 就像这么这样的 192.168.100.200 IP地址3232261320 十进制 我之前都是手动打开计算器;然后一个一个计算 像这样 IP地址: 192.168.100.200十六进

将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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读