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)
Exemplo n.º 2
0
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)