go语言把十进制数、整数转换为ipv4地址
上一篇是把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
相关文章