将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函数
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地址分别计算;然后相加即可