def __calc_udp_csum(saddr, daddr, udp_data, is_ipv6=False):
size = len(udp_data)
seq = [
saddr, daddr, b'\x00\x11',
utils.number2bytes(size, 2),
udp_data,
]
if is_ipv6:
size += 24
else:
size += 12
if 0 != size % 2:
seq.append(b"\0")
size += 1
data = b"".join(seq)
csum = socket.htons(fn_utils.calc_csum(data, size))
# csum = __calc_checksum(data, size)
# import socket
# print(csum,socket.htons(csum_t))
if csum == 0: return 0xffff
return csum
评论列表
文章目录