{ "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 }