{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# IPv6 Header" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from byteclasses.handlers.network.ipv6_hdr import IPv6Hdr\n", "from byteclasses.print import byteclass_inspect, collection_table, byteclass_info" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "ipv6_hdr = IPv6Hdr()\n", "data = bytearray(b\"\\x60\\x00\\x00\\x00\\x00\\x18\\x06\\x80\\x20\\x02\\x51\\x83\\x43\\x83\\x00\\x00\\x00\\x00\\x00\\x00\\x51\\x83\\x43\\x83\\x20\\x01\\x06\\x38\\x09\\x02\\x00\\x01\\x02\\x01\\x02\\xff\\xfe\\xe2\\x75\\x96\")\n", "ipv6_hdr.attach(memoryview(data))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Byteclass Info \n", "┏━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", "┃ Property ┃ Value ┃\n", "┡━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", "│ type() │ IPv6Hdr │\n", "│ mro │ IPv6Hdr -> object │\n", "│ len() │ 40 │\n", "│ str() │ IPv6Hdr(vtf=VTF(data=b'`\\x00\\x00\\x00'), payload_length=UInt16(24), next_hdr=UInt8(6), │\n", "│ │ hop_limit=UInt8(128), src_addr=IPv6Addr(uint8=[UInt8(32), UInt8(2), UInt8(81), UInt8(131), │\n", "│ │ UInt8(67), UInt8(131), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(81), │\n", "│ │ UInt8(131), UInt8(67), UInt8(131)], uint32=[UInt32(537022851), UInt32(1132658688), UInt32(0), │\n", "│ │ UInt32(1367556995)], uint64=[UInt64(2306495583382339584), UInt64(1367556995)]), │\n", "│ │ dst_addr=IPv6Addr(uint8=[UInt8(32), UInt8(1), UInt8(6), UInt8(56), UInt8(9), UInt8(2), UInt8(0), │\n", "│ │ UInt8(1), UInt8(2), UInt8(1), UInt8(2), UInt8(255), UInt8(254), UInt8(226), UInt8(117), UInt8(150)], │\n", "│ │ uint32=[UInt32(536938040), UInt32(151126017), UInt32(33620735), UInt32(4276254102)], │\n", "│ │ uint64=[UInt64(2306131321929465857), UInt64(144399961568736662)])) │\n", "│ repr() │ IPv6Hdr(vtf=VTF(data=b'`\\x00\\x00\\x00'), payload_length=UInt16(24), next_hdr=UInt8(6), │\n", "│ │ hop_limit=UInt8(128), src_addr=IPv6Addr(uint8=[UInt8(32), UInt8(2), UInt8(81), UInt8(131), │\n", "│ │ UInt8(67), UInt8(131), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(81), │\n", "│ │ UInt8(131), UInt8(67), UInt8(131)], uint32=[UInt32(537022851), UInt32(1132658688), UInt32(0), │\n", "│ │ UInt32(1367556995)], uint64=[UInt64(2306495583382339584), UInt64(1367556995)]), │\n", "│ │ dst_addr=IPv6Addr(uint8=[UInt8(32), UInt8(1), UInt8(6), UInt8(56), UInt8(9), UInt8(2), UInt8(0), │\n", "│ │ UInt8(1), UInt8(2), UInt8(1), UInt8(2), UInt8(255), UInt8(254), UInt8(226), UInt8(117), UInt8(150)], │\n", "│ │ uint32=[UInt32(536938040), UInt32(151126017), UInt32(33620735), UInt32(4276254102)], │\n", "│ │ uint64=[UInt64(2306131321929465857), UInt64(144399961568736662)])) │\n", "│ .data │ bytearray(b'`\\x00\\x00\\x00\\x00\\x18\\x06\\x80 \\x02Q\\x83C\\x83\\x00\\x00\\x00\\x00\\x00\\x00Q\\x83C\\x83 │\n", "│ │ \\x01\\x068\\t\\x02\\x00\\x01\\x02\\x01\\x02\\xff\\xfe\\xe2u\\x96') │\n", "└──────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────┘\n", "\n" ], "text/plain": [ "\u001b[3m Byteclass Info \u001b[0m\n", "┏━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", "┃\u001b[1m \u001b[0m\u001b[1mProperty\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mValue \u001b[0m\u001b[1m \u001b[0m┃\n", "┡━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", "│\u001b[90m \u001b[0m\u001b[1;90mtype() \u001b[0m\u001b[90m \u001b[0m│\u001b[90m \u001b[0m\u001b[90mIPv6Hdr \u001b[0m\u001b[90m \u001b[0m│\n", "│\u001b[91m \u001b[0m\u001b[1;91mmro \u001b[0m\u001b[91m \u001b[0m│\u001b[91m \u001b[0m\u001b[91mIPv6Hdr -> object \u001b[0m\u001b[91m \u001b[0m│\n", "│\u001b[92m \u001b[0m\u001b[1;92mlen() \u001b[0m\u001b[92m \u001b[0m│\u001b[92m \u001b[0m\u001b[92m40 \u001b[0m\u001b[92m \u001b[0m│\n", "│\u001b[93m \u001b[0m\u001b[1;93mstr() \u001b[0m\u001b[93m \u001b[0m│\u001b[93m \u001b[0m\u001b[93mIPv6Hdr(vtf=VTF(data=b'`\\x00\\x00\\x00'), payload_length=UInt16(24), next_hdr=UInt8(6), \u001b[0m\u001b[93m \u001b[0m│\n", "│\u001b[93m \u001b[0m│\u001b[93m \u001b[0m\u001b[93mhop_limit=UInt8(128), src_addr=IPv6Addr(uint8=[UInt8(32), UInt8(2), UInt8(81), UInt8(131), \u001b[0m\u001b[93m \u001b[0m│\n", "│\u001b[93m \u001b[0m│\u001b[93m \u001b[0m\u001b[93mUInt8(67), UInt8(131), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(81), \u001b[0m\u001b[93m \u001b[0m│\n", "│\u001b[93m \u001b[0m│\u001b[93m \u001b[0m\u001b[93mUInt8(131), UInt8(67), UInt8(131)], uint32=[UInt32(537022851), UInt32(1132658688), UInt32(0), \u001b[0m\u001b[93m \u001b[0m│\n", "│\u001b[93m \u001b[0m│\u001b[93m \u001b[0m\u001b[93mUInt32(1367556995)], uint64=[UInt64(2306495583382339584), UInt64(1367556995)]), \u001b[0m\u001b[93m \u001b[0m│\n", "│\u001b[93m \u001b[0m│\u001b[93m \u001b[0m\u001b[93mdst_addr=IPv6Addr(uint8=[UInt8(32), UInt8(1), UInt8(6), UInt8(56), UInt8(9), UInt8(2), UInt8(0), \u001b[0m\u001b[93m \u001b[0m│\n", "│\u001b[93m \u001b[0m│\u001b[93m \u001b[0m\u001b[93mUInt8(1), UInt8(2), UInt8(1), UInt8(2), UInt8(255), UInt8(254), UInt8(226), UInt8(117), UInt8(150)],\u001b[0m\u001b[93m \u001b[0m│\n", "│\u001b[93m \u001b[0m│\u001b[93m \u001b[0m\u001b[93muint32=[UInt32(536938040), UInt32(151126017), UInt32(33620735), UInt32(4276254102)], \u001b[0m\u001b[93m \u001b[0m│\n", "│\u001b[93m \u001b[0m│\u001b[93m \u001b[0m\u001b[93muint64=[UInt64(2306131321929465857), UInt64(144399961568736662)])) \u001b[0m\u001b[93m \u001b[0m│\n", "│\u001b[94m \u001b[0m\u001b[1;94mrepr() \u001b[0m\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mIPv6Hdr(vtf=VTF(data=b'`\\x00\\x00\\x00'), payload_length=UInt16(24), next_hdr=UInt8(6), \u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mhop_limit=UInt8(128), src_addr=IPv6Addr(uint8=[UInt8(32), UInt8(2), UInt8(81), UInt8(131), \u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mUInt8(67), UInt8(131), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(81), \u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mUInt8(131), UInt8(67), UInt8(131)], uint32=[UInt32(537022851), UInt32(1132658688), UInt32(0), \u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mUInt32(1367556995)], uint64=[UInt64(2306495583382339584), UInt64(1367556995)]), \u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mdst_addr=IPv6Addr(uint8=[UInt8(32), UInt8(1), UInt8(6), UInt8(56), UInt8(9), UInt8(2), UInt8(0), \u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mUInt8(1), UInt8(2), UInt8(1), UInt8(2), UInt8(255), UInt8(254), UInt8(226), UInt8(117), UInt8(150)],\u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94muint32=[UInt32(536938040), UInt32(151126017), UInt32(33620735), UInt32(4276254102)], \u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94muint64=[UInt64(2306131321929465857), UInt64(144399961568736662)])) \u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[95m \u001b[0m\u001b[1;95m.data \u001b[0m\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95mbytearray(b'`\\x00\\x00\\x00\\x00\\x18\\x06\\x80 \\x02Q\\x83C\\x83\\x00\\x00\\x00\\x00\\x00\\x00Q\\x83C\\x83 \u001b[0m\u001b[95m \u001b[0m│\n", "│\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95m\\x01\\x068\\t\\x02\\x00\\x01\\x02\\x01\\x02\\xff\\xfe\\xe2u\\x96') \u001b[0m\u001b[95m \u001b[0m│\n", "└──────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────┘\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "byteclass_info(ipv6_hdr)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
╭────────────────────────────────────────── Byteclass Inspect ──────────────────────────────────────────╮\n", "│ 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f │\n", "│ ---------------------------------------------------------------------------------------------------- │\n", "│ 0x0 60 00 00 0000 18068020 02 51 83 43 83 00 00 00 00 00 00 51 83 43 8320 01 06 38 09 02 00 01 02 01 │\n", "│ 0x20 02 ff fe e2 75 96 │\n", "╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯\n", "\n" ], "text/plain": [ "╭────────────────────────────────────────── Byteclass Inspect ──────────────────────────────────────────╮\n", "│ 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f │\n", "│ ---------------------------------------------------------------------------------------------------- │\n", "│ 0x0 \u001b[90m60 00 00 00\u001b[0m\u001b[91m00 18\u001b[0m\u001b[92m06\u001b[0m\u001b[93m80\u001b[0m\u001b[94m20 02 51 83 43 83 00 00 00 00 00 00 51 83 43 83\u001b[0m\u001b[95m20 01 06 38 09 02 00 01 02 01\u001b[0m │\n", "│ 0x20 \u001b[95m 02 ff fe e2 75 96\u001b[0m │\n", "╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Legend \n", "┏━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", "┃ Member ┃ Value ┃\n", "┡━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", "│ vtf │ VTF(00000110000000000000000000000000, flags={'version': 0, 'traffic_class': 6, 'flow_label': │\n", "│ │ 0}) │\n", "│ payload_length │ 24 │\n", "│ next_hdr │ 6 │\n", "│ hop_limit │ 128 │\n", "│ src_addr │ IPv6Addr(uint8=[UInt8(32), UInt8(2), UInt8(81), UInt8(131), UInt8(67), UInt8(131), UInt8(0), │\n", "│ │ UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(81), UInt8(131), UInt8(67), │\n", "│ │ UInt8(131)], uint32=[UInt32(537022851), UInt32(1132658688), UInt32(0), UInt32(1367556995)], │\n", "│ │ uint64=[UInt64(2306495583382339584), UInt64(1367556995)]) │\n", "│ dst_addr │ IPv6Addr(uint8=[UInt8(32), UInt8(1), UInt8(6), UInt8(56), UInt8(9), UInt8(2), UInt8(0), │\n", "│ │ UInt8(1), UInt8(2), UInt8(1), UInt8(2), UInt8(255), UInt8(254), UInt8(226), UInt8(117), │\n", "│ │ UInt8(150)], uint32=[UInt32(536938040), UInt32(151126017), UInt32(33620735), │\n", "│ │ UInt32(4276254102)], uint64=[UInt64(2306131321929465857), UInt64(144399961568736662)]) │\n", "└────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────┘\n", "\n" ], "text/plain": [ "\u001b[3m Legend \u001b[0m\n", "┏━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", "┃\u001b[1m \u001b[0m\u001b[1mMember \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mValue \u001b[0m\u001b[1m \u001b[0m┃\n", "┡━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", "│\u001b[90m \u001b[0m\u001b[1;90mvtf \u001b[0m\u001b[90m \u001b[0m│\u001b[90m \u001b[0m\u001b[90mVTF(00000110000000000000000000000000, flags={'version': 0, 'traffic_class': 6, 'flow_label': \u001b[0m\u001b[90m \u001b[0m│\n", "│\u001b[90m \u001b[0m│\u001b[90m \u001b[0m\u001b[90m0}) \u001b[0m\u001b[90m \u001b[0m│\n", "│\u001b[91m \u001b[0m\u001b[1;91mpayload_length\u001b[0m\u001b[91m \u001b[0m│\u001b[91m \u001b[0m\u001b[91m24 \u001b[0m\u001b[91m \u001b[0m│\n", "│\u001b[92m \u001b[0m\u001b[1;92mnext_hdr \u001b[0m\u001b[92m \u001b[0m│\u001b[92m \u001b[0m\u001b[92m6 \u001b[0m\u001b[92m \u001b[0m│\n", "│\u001b[93m \u001b[0m\u001b[1;93mhop_limit \u001b[0m\u001b[93m \u001b[0m│\u001b[93m \u001b[0m\u001b[93m128 \u001b[0m\u001b[93m \u001b[0m│\n", "│\u001b[94m \u001b[0m\u001b[1;94msrc_addr \u001b[0m\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mIPv6Addr(uint8=[UInt8(32), UInt8(2), UInt8(81), UInt8(131), UInt8(67), UInt8(131), UInt8(0), \u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mUInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(81), UInt8(131), UInt8(67), \u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mUInt8(131)], uint32=[UInt32(537022851), UInt32(1132658688), UInt32(0), UInt32(1367556995)], \u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94muint64=[UInt64(2306495583382339584), UInt64(1367556995)]) \u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[95m \u001b[0m\u001b[1;95mdst_addr \u001b[0m\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95mIPv6Addr(uint8=[UInt8(32), UInt8(1), UInt8(6), UInt8(56), UInt8(9), UInt8(2), UInt8(0), \u001b[0m\u001b[95m \u001b[0m│\n", "│\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95mUInt8(1), UInt8(2), UInt8(1), UInt8(2), UInt8(255), UInt8(254), UInt8(226), UInt8(117), \u001b[0m\u001b[95m \u001b[0m│\n", "│\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95mUInt8(150)], uint32=[UInt32(536938040), UInt32(151126017), UInt32(33620735), \u001b[0m\u001b[95m \u001b[0m│\n", "│\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95mUInt32(4276254102)], uint64=[UInt64(2306131321929465857), UInt64(144399961568736662)]) \u001b[0m\u001b[95m \u001b[0m│\n", "└────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────┘\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "byteclass_inspect(ipv6_hdr)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
IPv6Hdr \n", "┏━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", "┃ Member ┃ Value ┃ Data ┃\n", "┡━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", "│ vtf │ VTF(00000110000000000000000000000000, │ b'`\\x00\\x00\\x00' │\n", "│ │ flags={'version': 0, 'traffic_class': 6, │ │\n", "│ │ 'flow_label': 0}) │ │\n", "│ payload_length │ 24 │ b'\\x00\\x18' │\n", "│ next_hdr │ 6 │ b'\\x06' │\n", "│ hop_limit │ 128 │ b'\\x80' │\n", "│ src_addr │ IPv6Addr(uint8=[UInt8(32), UInt8(2), │ bytearray(b' │\n", "│ │ UInt8(81), UInt8(131), UInt8(67), UInt8(131), │ \\x02Q\\x83C\\x83\\x00\\x00\\x00\\x00\\x00\\x00Q\\x83C\\… │\n", "│ │ UInt8(0), UInt8(0), UInt8(0), UInt8(0), │ │\n", "│ │ UInt8(0), UInt8(0), UInt8(81), UInt8(131), │ │\n", "│ │ UInt8(67), UInt8(131)], │ │\n", "│ │ uint32=[UInt32(537022851), │ │\n", "│ │ UInt32(1132658688), UInt32(0), │ │\n", "│ │ UInt32(1367556995)], │ │\n", "│ │ uint64=[UInt64(2306495583382339584), │ │\n", "│ │ UInt64(1367556995)]) │ │\n", "│ dst_addr │ IPv6Addr(uint8=[UInt8(32), UInt8(1), │ bytearray(b' │\n", "│ │ UInt8(6), UInt8(56), UInt8(9), UInt8(2), │ \\x01\\x068\\t\\x02\\x00\\x01\\x02\\x01\\x02\\xff\\xfe\\x… │\n", "│ │ UInt8(0), UInt8(1), UInt8(2), UInt8(1), │ │\n", "│ │ UInt8(2), UInt8(255), UInt8(254), UInt8(226), │ │\n", "│ │ UInt8(117), UInt8(150)], │ │\n", "│ │ uint32=[UInt32(536938040), UInt32(151126017), │ │\n", "│ │ UInt32(33620735), UInt32(4276254102)], │ │\n", "│ │ uint64=[UInt64(2306131321929465857), │ │\n", "│ │ UInt64(144399961568736662)]) │ │\n", "└────────────────┴───────────────────────────────────────────────┴────────────────────────────────────────────────┘\n", "\n" ], "text/plain": [ "\u001b[3m IPv6Hdr \u001b[0m\n", "┏━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", "┃\u001b[1m \u001b[0m\u001b[1mMember \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mValue \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mData \u001b[0m\u001b[1m \u001b[0m┃\n", "┡━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", "│\u001b[90m \u001b[0m\u001b[1;90mvtf \u001b[0m\u001b[90m \u001b[0m│\u001b[90m \u001b[0m\u001b[90mVTF(00000110000000000000000000000000, \u001b[0m\u001b[90m \u001b[0m│\u001b[90m \u001b[0m\u001b[90mb'`\\x00\\x00\\x00' \u001b[0m\u001b[90m \u001b[0m│\n", "│\u001b[90m \u001b[0m│\u001b[90m \u001b[0m\u001b[90mflags={'version': 0, 'traffic_class': 6, \u001b[0m\u001b[90m \u001b[0m│\u001b[90m \u001b[0m│\n", "│\u001b[90m \u001b[0m│\u001b[90m \u001b[0m\u001b[90m'flow_label': 0}) \u001b[0m\u001b[90m \u001b[0m│\u001b[90m \u001b[0m│\n", "│\u001b[91m \u001b[0m\u001b[1;91mpayload_length\u001b[0m\u001b[91m \u001b[0m│\u001b[91m \u001b[0m\u001b[91m24 \u001b[0m\u001b[91m \u001b[0m│\u001b[91m \u001b[0m\u001b[91mb'\\x00\\x18' \u001b[0m\u001b[91m \u001b[0m│\n", "│\u001b[92m \u001b[0m\u001b[1;92mnext_hdr \u001b[0m\u001b[92m \u001b[0m│\u001b[92m \u001b[0m\u001b[92m6 \u001b[0m\u001b[92m \u001b[0m│\u001b[92m \u001b[0m\u001b[92mb'\\x06' \u001b[0m\u001b[92m \u001b[0m│\n", "│\u001b[93m \u001b[0m\u001b[1;93mhop_limit \u001b[0m\u001b[93m \u001b[0m│\u001b[93m \u001b[0m\u001b[93m128 \u001b[0m\u001b[93m \u001b[0m│\u001b[93m \u001b[0m\u001b[93mb'\\x80' \u001b[0m\u001b[93m \u001b[0m│\n", "│\u001b[94m \u001b[0m\u001b[1;94msrc_addr \u001b[0m\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mIPv6Addr(uint8=[UInt8(32), UInt8(2), \u001b[0m\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mbytearray(b' \u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mUInt8(81), UInt8(131), UInt8(67), UInt8(131),\u001b[0m\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94m\\x02Q\\x83C\\x83\\x00\\x00\\x00\\x00\\x00\\x00Q\\x83C\\…\u001b[0m\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mUInt8(0), UInt8(0), UInt8(0), UInt8(0), \u001b[0m\u001b[94m \u001b[0m│\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mUInt8(0), UInt8(0), UInt8(81), UInt8(131), \u001b[0m\u001b[94m \u001b[0m│\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mUInt8(67), UInt8(131)], \u001b[0m\u001b[94m \u001b[0m│\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94muint32=[UInt32(537022851), \u001b[0m\u001b[94m \u001b[0m│\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mUInt32(1132658688), UInt32(0), \u001b[0m\u001b[94m \u001b[0m│\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mUInt32(1367556995)], \u001b[0m\u001b[94m \u001b[0m│\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94muint64=[UInt64(2306495583382339584), \u001b[0m\u001b[94m \u001b[0m│\u001b[94m \u001b[0m│\n", "│\u001b[94m \u001b[0m│\u001b[94m \u001b[0m\u001b[94mUInt64(1367556995)]) \u001b[0m\u001b[94m \u001b[0m│\u001b[94m \u001b[0m│\n", "│\u001b[95m \u001b[0m\u001b[1;95mdst_addr \u001b[0m\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95mIPv6Addr(uint8=[UInt8(32), UInt8(1), \u001b[0m\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95mbytearray(b' \u001b[0m\u001b[95m \u001b[0m│\n", "│\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95mUInt8(6), UInt8(56), UInt8(9), UInt8(2), \u001b[0m\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95m\\x01\\x068\\t\\x02\\x00\\x01\\x02\\x01\\x02\\xff\\xfe\\x…\u001b[0m\u001b[95m \u001b[0m│\n", "│\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95mUInt8(0), UInt8(1), UInt8(2), UInt8(1), \u001b[0m\u001b[95m \u001b[0m│\u001b[95m \u001b[0m│\n", "│\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95mUInt8(2), UInt8(255), UInt8(254), UInt8(226),\u001b[0m\u001b[95m \u001b[0m│\u001b[95m \u001b[0m│\n", "│\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95mUInt8(117), UInt8(150)], \u001b[0m\u001b[95m \u001b[0m│\u001b[95m \u001b[0m│\n", "│\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95muint32=[UInt32(536938040), UInt32(151126017),\u001b[0m\u001b[95m \u001b[0m│\u001b[95m \u001b[0m│\n", "│\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95mUInt32(33620735), UInt32(4276254102)], \u001b[0m\u001b[95m \u001b[0m│\u001b[95m \u001b[0m│\n", "│\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95muint64=[UInt64(2306131321929465857), \u001b[0m\u001b[95m \u001b[0m│\u001b[95m \u001b[0m│\n", "│\u001b[95m \u001b[0m│\u001b[95m \u001b[0m\u001b[95mUInt64(144399961568736662)]) \u001b[0m\u001b[95m \u001b[0m│\u001b[95m \u001b[0m│\n", "└────────────────┴───────────────────────────────────────────────┴────────────────────────────────────────────────┘\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "collection_table(ipv6_hdr)" ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.9" } }, "nbformat": 4, "nbformat_minor": 2 }