func ip2int(ip string) int {
segs := strings.Split(ip, ".")
res := 0
for i, v := range segs {
vint, _ := strconv.Atoi(v)
res += vint << (8 * (3 - i))
}
return res
}
func int2ip(num int64) string {
ans := []string{}
for i := 0; i < 4; i++ {
tmp := (num & (255 << (8 * (3 - i)))) >> (8 * (3 - i))
ans = append(ans, strconv.Itoa(int(tmp)))
}
return strings.Join(ans, ".")
}
func getIpData(data string) string {
arr := strings.Split(data, " ")
totalLen, _ := strconv.ParseInt(arr[2]+arr[3], 16, 64)
flag, _ := strconv.ParseInt(arr[6], 16, 64)
flag = (flag & (7 << 5)) >> 5
ipstr := ""
for _, v := range arr[16:] {
ipstr += v
}
ip, _ := strconv.ParseInt(ipstr, 16, 64)
ipstr = int2ip(ip)
return strconv.Itoa(int(totalLen)) + "," + strconv.Itoa(int(flag)) + "," + ipstr
}