IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    Sam发表于 2014-10-11 09:26:04
    love 0

    将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], 10, 0)
        b2, _ := strconv.ParseInt(x[2], 10, 0)
        b3, _ := strconv.ParseInt(x[3], 10, 0)
        CalculateIp(b0, b1, b2, b3)
    }
    
    1. 这个代码就是在控制台提示用户输入IP地址;
    2. 然后用Split进行切割;
    3. 然后用x[0]这样来去IP地址的4个部分
    4. 接着吧转换为int64类型
    

    CalculateIp函数

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

    func CalculateIp(b0, b1, b2, 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地址分别计算;然后相加即可
    

    运行结果如下

    IP地址转换为十进制

    代码地址

    Github IPConversionTools

    你可能也会喜欢这些文字

    • Golang如何解析Html代码Golang如何解析Html代码
    • Golang写得电子书下载工具EbookDownloadToolsGolang写得电子书下载工具EbookDownloadTools
    • Golang获取本地计算机的MAC地址Golang获取本地计算机的MAC地址
    • C语言实现秒表分段计时器C语言实现秒表分段计时器
    • scanf和printf函数处理不同进制scanf和printf函数处理不同进制


沪ICP备19023445号-2号
友情链接