python3学习手册
def icmp_checksum(packet): # inputif len(packet) & 1: # 长度的末位为1表示:长度不为2的倍数 (即末位不为0) packet = packet + b'\x00' # 0填充 words = array.array('h', packet) sum = 0 sum = (sum >> 16) + (sum & 0xffff) return (~sum) & 0xffff # 反回2字节校验和的反码 def generate_icmp_packet(icmp_data): # input icmp_type = 8 # echo_request icmp_code = 0 icmp_type, icmp_code, icmp_checkum, icmp_id, icmp_sequence) icmp_packet = icmp_header + icmp_data icmp_checkum = icmp_checksum(icmp_packet) icmp_header = struct.pack('bbHHh', icmp_type, icmp_code, 0 码力 | 213 页 | 3.53 MB | 1 年前3
共 1 条
- 1