// return int 0:错误的ip 4:ipv4 6:ipv6funcCheckIp(ip string)int{if ip ==""{return4}out := net.ParseIP(ip)if out ==nil{return0}if strings.Contains(out.String(),"."){return4}if strings.Contains(out.String(),":"){return6}return0}
funcipToInt(ip net.IP)int64{ip = ip.To4()if ip ==nil{return0}ipParts := strings.Split(ip.String(),".")ipInt :=int64(0)for i :=0; i <4; i++{part,_:= strconv.ParseInt(ipParts[i],10,64)ipInt += part <<((3-uint(i))*8)}return ipInt
}funcmain(){startIP :="183.62.142.241"endIP :="183.62.145.233"// ip格式校验start := net.ParseIP(startIP)if start ==nil{log.Fatal("Invalid start IP address")}end := net.ParseIP(endIP)if end ==nil{log.Fatal("Invalid end IP address")}startInt :=ipToInt(start)endInt :=ipToInt(end)count := endInt - startInt +1fmt.Printf("Number of IPs between %s and %s: %d\n", startIP, endIP, count)}