def test_tcp_data_packet(): # Returns a byte array, don't use binascii. It's just for aesthetics. packet = binascii.unhexlify( b'45000043a5424000400697707f0000017f000001bb72dd5a05e9a678cbb9a7' b'e180180156fe3700000101080ae94db495e94d9686746869736973616d6573736167650a' ) ip_packet: IpPacket = parse_network_layer_packet(packet) tcp_packet: TcpPacket = parse_application_layer_packet(ip_packet.payload) actual_value = tcp_packet.src_port correct_value = 47986 case = "TCP source port." do_assert(correct_value, actual_value, case) actual_value = tcp_packet.dst_port correct_value = 56666 case = "TCP destination port." do_assert(correct_value, actual_value, case) actual_value = tcp_packet.data_offset correct_value = 8 case = "TCP data offset." do_assert(correct_value, actual_value, case) actual_value = tcp_packet.payload correct_value = bytes("thisisamessage\n", encoding="UTF-8") case = "TCP payload." do_assert(correct_value, actual_value, case)
def test_ip_packet_parsing(): # Returns a byte array, don't use binascii. It's just for aesthetics. packet = binascii.unhexlify( b'450000280000400040063cce7f0000017f00000201bbc5b000000000c59af2b15014000032160000') ip_packet: IpPacket = parse_network_layer_packet(packet) actual_value = ip_packet.ihl correct_value = 5 case = "IHL." do_assert(correct_value, actual_value, case) actual_value = ip_packet.source_address correct_value = "127.0.0.1" case = "Source address." do_assert(correct_value, actual_value, case) actual_value = ip_packet.destination_address correct_value = "127.0.0.2" case = "Destination address." do_assert(correct_value, actual_value, case)