I'd like to calculate the checksum of an UDP header packet I want to send:
packetosend = """60 00 00 00 00 24 3a 40 20 02 c0 a8 01 50 00 01 00 00
00 00 00 00 09 38 20 02 c0 a8 01 50 00 01 00 00 00 00 00 00 09 6f"""
so I need to join this utf-16 (not a problem) and calculate the checksum of this specific packet. How can I do that?
Thanks!
EDIT: Yes it's an IPv6 header for an ICMPv6 packet, anyways what I would like to know is the formula, and how it works.
I'll give another example with an ICMP ping echo (v4) packet:
packet = """
08 00 d1 15 76 0c 00 07 bf d3 55 4a ad b5 03 00 // "d1 15" is the packet checksum
08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17
18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37"""
Thanks.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…