go语言把十进制数、整数转换为ipv4地址

2023-06-01 00:00:00 语言 转换为 整数

上一篇是把ipv4地址转换为十进制数,那么这篇就是将十进制值转换回IPv4地址


反转转换为十进制数时使用的算法:

为了得到正确的结果,我们需要做两次位移和“0xff”掩码。


代码示例

 package main
 import (
         "fmt"
         "strconv"
 )
 func InttoIP4(ipInt int64) string {
 
         //需要做两次位移和“0xff”掩码
         b0 := strconv.FormatInt((ipInt>>24)&0xff, 10)
         b1 := strconv.FormatInt((ipInt>>16)&0xff, 10)
         b2 := strconv.FormatInt((ipInt>>8)&0xff, 10)
         b3 := strconv.FormatInt((ipInt & 0xff), 10)
         
         return b0 + "." + b1 + "." + b2 + "." + b3
 }
 func main() {
 
         // 1653276013 = 98.138.253.109
         IPv4 := InttoIP4(1653276013)
         fmt.Println(IPv4)
 }

输出 :

98.138.253.109

相关文章