IPv4 - Internet Protocol version 4 ================================== .. module:: pcapkit.protocols.internet.ipv4 .. module:: pcapkit.protocols.data.internet.ipv4 :mod:`pcapkit.protocols.internet.ipv4` contains :class:`~pcapkit.protocols.internet.ipv4.IPv4` only, which implements extractor for Internet Protocol version 4 (IPv4) [*]_, whose structure is described as below: ======= ========= ====================== ============================================= Octets Bits Name Description ======= ========= ====================== ============================================= 0 0 ``ip.version`` Version (``4``) 0 4 ``ip.hdr_len`` Internal Header Length (IHL) 1 8 ``ip.dsfield.dscp`` Differentiated Services Code Point (DSCP) 1 14 ``ip.dsfield.ecn`` Explicit Congestion Notification (ECN) 2 16 ``ip.len`` Total Length 4 32 ``ip.id`` Identification 6 48 Reserved Bit (must be ``\x00``) 6 49 ``ip.flags.df`` Don't Fragment (DF) 6 50 ``ip.flags.mf`` More Fragments (MF) 6 51 ``ip.frag_offset`` Fragment Offset 8 64 ``ip.ttl`` Time To Live (TTL) 9 72 ``ip.proto`` Protocol (Transport Layer) 10 80 ``ip.checksum`` Header Checksum 12 96 ``ip.src`` Source IP Address 16 128 ``ip.dst`` Destination IP Address 20 160 ``ip.options`` IP Options (if IHL > ``5``) ======= ========= ====================== ============================================= .. raw:: html
.. autoclass:: pcapkit.protocols.internet.ipv4.IPv4 :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. automethod:: __index__ .. autoproperty:: name .. autoproperty:: length .. autoproperty:: protocol .. autoproperty:: src .. autoproperty:: dst .. automethod:: read .. automethod:: make .. automethod:: id .. automethod:: _read_ipv4_addr .. automethod:: _read_ipv4_opt_type .. automethod:: _read_ipv4_options .. automethod:: _read_opt_unassigned .. automethod:: _read_opt_eool .. automethod:: _read_opt_nop .. automethod:: _read_opt_sec .. automethod:: _read_opt_lsr .. automethod:: _read_opt_ts .. automethod:: _read_opt_esec .. automethod:: _read_opt_rr .. automethod:: _read_opt_sid .. automethod:: _read_opt_ssr .. automethod:: _read_opt_mtup .. automethod:: _read_opt_mtur .. automethod:: _read_opt_tr .. automethod:: _read_opt_rtralt .. automethod:: _read_opt_qs Data Structures --------------- .. autoclass:: pcapkit.protocols.data.internet.ipv4.IPv4(version, hdr_len, tos, len, id, flags, offset, ttl, protocol, checksum, src, dst) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: version .. autoattribute:: hdr_len .. autoattribute:: tos .. autoattribute:: len .. autoattribute:: id .. autoattribute:: flags .. autoattribute:: offset .. autoattribute:: ttl .. autoattribute:: protocol .. autoattribute:: checksum .. autoattribute:: src .. autoattribute:: dst .. autoattribute:: options .. autoclass:: pcapkit.protocols.data.internet.ipv4.ToSField(pre, del, thr, rel, ecn) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: pre .. attribute:: del :type: ToSDelay Delay. .. note:: This field is conflict with :keyword:`del` keyword. To access this field, directly use :func:`getattr` instead. .. autoattribute:: thr .. autoattribute:: rel .. autoattribute:: ecn .. autoclass:: pcapkit.protocols.data.internet.ipv4.Flags(df, mf) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: df .. autoattribute:: mf .. autoclass:: pcapkit.protocols.data.internet.ipv4.Option(code, length, type) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: code .. autoattribute:: length .. autoattribute:: type .. autoclass:: pcapkit.protocols.data.internet.ipv4.OptionType(change, class, number) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: change .. attribute:: class :type: OptionClass Option class. .. note:: This field is conflict with :keyword:`class` keyword. To access this field, directly use :func:`getattr` instead. .. autoattribute:: number .. autoclass:: pcapkit.protocols.data.internet.ipv4.UnassignedOption(code, length, type, data) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: data .. autoclass:: pcapkit.protocols.data.internet.ipv4.EOOLOption(code, length, type) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoclass:: pcapkit.protocols.data.internet.ipv4.NOPOption(code, length, type) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoclass:: pcapkit.protocols.data.internet.ipv4.SECOption(code, length, type, level, flags) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: level .. autoattribute:: flags .. autoclass:: pcapkit.protocols.data.internet.ipv4.LSROption(code, length, type, pointer, route) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: pointer .. autoattribute:: route .. autoclass:: pcapkit.protocols.data.internet.ipv4.TSOption(code, length, type, pointer, overflow, flag, timestamp) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: pointer .. autoattribute:: overflow .. autoattribute:: flag .. autoattribute:: timestamp .. autoclass:: pcapkit.protocols.data.internet.ipv4.ESECOption(code, length, type, level, flags) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: level .. autoattribute:: flags .. autoclass:: pcapkit.protocols.data.internet.ipv4.RROption(code, length, type, pointer, route) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: pointer .. autoattribute:: route .. autoclass:: pcapkit.protocols.data.internet.ipv4.SIDOption(code, length, type, sid) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: sid .. autoclass:: pcapkit.protocols.data.internet.ipv4.SSROption(code, length, type, pointer, route) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: pointer .. autoattribute:: route .. autoclass:: pcapkit.protocols.data.internet.ipv4.MTUPOption(code, length, type, mtu) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: mtu .. autoclass:: pcapkit.protocols.data.internet.ipv4.MTUROption(code, length, type, mtu) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: mtu .. autoclass:: pcapkit.protocols.data.internet.ipv4.TROption(code, length, type, id, outbound, return, originator) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: id .. autoattribute:: outbound .. attribute:: return :type: int Return hop count. .. note:: This field is conflict with :keyword:`return` keyword. To access this field, directly use :func:`getattr` instead. .. autoattribute:: originator .. autoclass:: pcapkit.protocols.data.internet.ipv4.RTRALTOption(code, length, type, alert) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: alert .. autoclass:: pcapkit.protocols.data.internet.ipv4.QSOption(code, length, type, func, rate, ttl, nounce) :no-members: :show-inheritance: :param \*args: Arbitrary positional arguments. :param \*\*kwargs: Arbitrary keyword arguments. .. autoattribute:: func .. autoattribute:: rate .. autoattribute:: ttl .. autoattribute:: nounce .. raw:: html
.. [*] https://en.wikipedia.org/wiki/IPv4