scapy.layers.inet6
IPv6 (Internet Protocol v6).
- class scapy.layers.inet6.AS_resolver6(server: str | None = None, port: int = 43, options: str | None = None)[source]
Bases:
AS_resolver_riswhois
- class scapy.layers.inet6.DomainNameListField(name, default, length_from=None, padded=False)[source]
Bases:
StrLenField- islist = 1
- padded
- padded_unit = 8
- class scapy.layers.inet6.HAO(_pkt, /, *, otype=201, optlen=16, hoa='::')[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.inet6.HAO'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.HBHOptUnknown(_pkt, /, *, otype=1, optlen=None, optdata=b'')[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.inet6.HBHOptUnknown'>, <class 'scapy.packet.Packet'>]
- alignment_delta(curpos)[source]
As specified in section 4.2 of RFC 2460, every options has an alignment requirement usually expressed xn+y, meaning the Option Type must appear at an integer multiple of x octets from the start of the header, plus y octets.
That function is provided the current position from the start of the header and returns required padding length.
- class scapy.layers.inet6.ICMPv6DestUnreach(_pkt, /, *, type=1, code=0, cksum=None, length=0, unused=0, extpad=b'', ext=None)[source]
Bases:
_ICMPv6Error- aliastypes = [<class 'scapy.layers.inet6.ICMPv6DestUnreach'>, <class 'scapy.layers.inet6._ICMPv6Error'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6DestUnreach).type>, <ByteEnumField (ICMPv6DestUnreach).code>, <XShortField (ICMPv6DestUnreach).cksum>, <ByteField (ICMPv6DestUnreach).length>, <X3BytesField (ICMPv6DestUnreach).unused>, <scapy.layers.inet._ICMPExtensionPadField object>, <scapy.layers.inet._ICMPExtensionField object>]
- class scapy.layers.inet6.ICMPv6EchoReply(_pkt, /, *, type=129, code=0, cksum=None, id=0, seq=0, data=b'')[source]
Bases:
ICMPv6EchoRequest- aliastypes = [<class 'scapy.layers.inet6.ICMPv6EchoReply'>, <class 'scapy.layers.inet6.ICMPv6EchoRequest'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6EchoRequest,ICMPv6EchoReply).type>, <ByteField (ICMPv6EchoRequest,ICMPv6EchoReply).code>, <XShortField (ICMPv6EchoRequest,ICMPv6EchoReply).cksum>, <XShortField (ICMPv6EchoRequest,ICMPv6EchoReply).id>, <XShortField (ICMPv6EchoRequest,ICMPv6EchoReply).seq>, <StrField (ICMPv6EchoRequest,ICMPv6EchoReply).data>]
- class scapy.layers.inet6.ICMPv6EchoRequest(_pkt, /, *, type=128, code=0, cksum=None, id=0, seq=0, data=b'')[source]
Bases:
_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6EchoRequest'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6EchoRequest,ICMPv6EchoReply).type>, <ByteField (ICMPv6EchoRequest,ICMPv6EchoReply).code>, <XShortField (ICMPv6EchoRequest,ICMPv6EchoReply).cksum>, <XShortField (ICMPv6EchoRequest,ICMPv6EchoReply).id>, <XShortField (ICMPv6EchoRequest,ICMPv6EchoReply).seq>, <StrField (ICMPv6EchoRequest,ICMPv6EchoReply).data>]
- class scapy.layers.inet6.ICMPv6HAADReply(_pkt, /, *, type=145, code=0, cksum=None, id=None, R=1, res=0, addresses=[])[source]
Bases:
_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6HAADReply'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6HAADReply).type>, <ByteField (ICMPv6HAADReply).code>, <XShortField (ICMPv6HAADReply).cksum>, <XShortField (ICMPv6HAADReply).id>, <BitEnumField (ICMPv6HAADReply).R>, <XBitField (ICMPv6HAADReply).res>, <IP6ListField (ICMPv6HAADReply).addresses>]
- class scapy.layers.inet6.ICMPv6HAADRequest(_pkt, /, *, type=144, code=0, cksum=None, id=None, R=1, res=0)[source]
Bases:
_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6HAADRequest'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6MLDMultAddrRec(_pkt, /, *, rtype=4, auxdata_len=None, sources_number=None, dst='::', sources=[], auxdata=b'')[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6MLDMultAddrRec'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteField (ICMPv6MLDMultAddrRec).rtype>, <FieldLenField (ICMPv6MLDMultAddrRec).auxdata_len>, <FieldLenField (ICMPv6MLDMultAddrRec).sources_number>, <IP6Field (ICMPv6MLDMultAddrRec).dst>, <IP6ListField (ICMPv6MLDMultAddrRec).sources>, <StrLenField (ICMPv6MLDMultAddrRec).auxdata>]
- class scapy.layers.inet6.ICMPv6MLDone(_pkt, /, *, type=132, code=0, cksum=None, mrd=0, reserved=0, mladdr='::')[source]
Bases:
_ICMPv6ML- aliastypes = [<class 'scapy.layers.inet6.ICMPv6MLDone'>, <class 'scapy.layers.inet6._ICMPv6ML'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).type>, <ByteField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).code>, <XShortField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).cksum>, <ShortField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).mrd>, <ShortField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).reserved>, <IP6Field (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).mladdr>]
- class scapy.layers.inet6.ICMPv6MLQuery(_pkt, /, *, type=130, code=0, cksum=None, mrd=10000, reserved=0, mladdr='::')[source]
Bases:
_ICMPv6ML- aliastypes = [<class 'scapy.layers.inet6.ICMPv6MLQuery'>, <class 'scapy.layers.inet6._ICMPv6ML'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).type>, <ByteField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).code>, <XShortField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).cksum>, <ShortField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).mrd>, <ShortField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).reserved>, <IP6Field (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).mladdr>]
- class scapy.layers.inet6.ICMPv6MLQuery2(_pkt, /, *, type=130, code=0, cksum=None, mrd=10000, reserved=0, mladdr='::', Resv=0, S=0, QRV=0, QQIC=0, sources_number=None, sources=[])[source]
Bases:
_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6MLQuery2'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6MLQuery2).type>, <ByteField (ICMPv6MLQuery2).code>, <XShortField (ICMPv6MLQuery2).cksum>, <ShortField (ICMPv6MLQuery2).mrd>, <ShortField (ICMPv6MLQuery2).reserved>, <IP6Field (ICMPv6MLQuery2).mladdr>, <BitField (ICMPv6MLQuery2).Resv>, <BitField (ICMPv6MLQuery2).S>, <BitField (ICMPv6MLQuery2).QRV>, <ByteField (ICMPv6MLQuery2).QQIC>, <ShortField (ICMPv6MLQuery2).sources_number>, <IP6ListField (ICMPv6MLQuery2).sources>]
- class scapy.layers.inet6.ICMPv6MLReport(_pkt, /, *, type=131, code=0, cksum=None, mrd=0, reserved=0, mladdr='::')[source]
Bases:
_ICMPv6ML- aliastypes = [<class 'scapy.layers.inet6.ICMPv6MLReport'>, <class 'scapy.layers.inet6._ICMPv6ML'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).type>, <ByteField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).code>, <XShortField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).cksum>, <ShortField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).mrd>, <ShortField (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).reserved>, <IP6Field (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).mladdr>]
- class scapy.layers.inet6.ICMPv6MLReport2(_pkt, /, *, type=143, res=0, cksum=None, reserved=0, records_number=None, records=[])[source]
Bases:
_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6MLReport2'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6MLReport2).type>, <ByteField (ICMPv6MLReport2).res>, <XShortField (ICMPv6MLReport2).cksum>, <ShortField (ICMPv6MLReport2).reserved>, <ShortField (ICMPv6MLReport2).records_number>, <PacketListField (ICMPv6MLReport2).records>]
- class scapy.layers.inet6.ICMPv6MPAdv(_pkt, /, *, type=147, code=0, cksum=None, id=None, flags=2, res=0)[source]
Bases:
_ICMPv6NDGuessPayload,_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6MPAdv'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6MPSol(_pkt, /, *, type=146, code=0, cksum=None, id=None, res=0)[source]
Bases:
_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6MPSol'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6MRD_Advertisement(_pkt, /, *, type=151, advinter=20, cksum=None, queryint=0, robustness=0)[source]
Bases:
_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6MRD_Advertisement'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6MRD_Solicitation(_pkt, /, *, type=152, res=0, cksum=None)[source]
Bases:
_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6MRD_Solicitation'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6MRD_Termination(_pkt, /, *, type=153, res=0, cksum=None)[source]
Bases:
_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6MRD_Termination'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptAdvInterval(_pkt, /, *, type=7, len=1, res=0, advint=0)[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptAdvInterval'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptCaptivePortal(_pkt, /, *, type=37, len=None, URI=b'')[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptCaptivePortal'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptDNSSL(_pkt, /, *, type=31, len=None, res=None, lifetime=4294967295, searchlist=[])[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptDNSSL'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptDataField(name, default, strip_zeros=False, **kwargs)[source]
Bases:
StrLenField- strip_zeros
- class scapy.layers.inet6.ICMPv6NDOptDstLLAddr(_pkt, /, *, type=2, len=1, lladdr=None)[source]
Bases:
ICMPv6NDOptSrcLLAddr- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptDstLLAddr'>, <class 'scapy.layers.inet6.ICMPv6NDOptSrcLLAddr'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptEFA(_pkt, /, *, type=26, len=1, res=0)[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptEFA'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptHAInfo(_pkt, /, *, type=8, len=1, res=0, pref=0, lifetime=1)[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptHAInfo'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptIPAddr(_pkt, /, *, type=17, len=3, optcode=1, plen=64, res=0, addr='::')[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptIPAddr'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptLLA(_pkt, /, *, type=19, len=1, optcode=0, lla='00:00:00:00:00:00')[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptLLA'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptMAP(_pkt, /, *, type=23, len=3, dist=1, pref=15, R=1, res=0, validlifetime=4294967295, addr='::')[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptMAP'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteField (ICMPv6NDOptMAP).type>, <ByteField (ICMPv6NDOptMAP).len>, <BitField (ICMPv6NDOptMAP).dist>, <BitField (ICMPv6NDOptMAP).pref>, <BitField (ICMPv6NDOptMAP).R>, <BitField (ICMPv6NDOptMAP).res>, <IntField (ICMPv6NDOptMAP).validlifetime>, <IP6Field (ICMPv6NDOptMAP).addr>]
- class scapy.layers.inet6.ICMPv6NDOptMTU(_pkt, /, *, type=5, len=1, res=0, mtu=1280)[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptMTU'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptNewRtrPrefix(_pkt, /, *, type=18, len=3, optcode=0, plen=64, res=0, prefix='::')[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptNewRtrPrefix'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteField (ICMPv6NDOptNewRtrPrefix).type>, <ByteField (ICMPv6NDOptNewRtrPrefix).len>, <ByteField (ICMPv6NDOptNewRtrPrefix).optcode>, <ByteField (ICMPv6NDOptNewRtrPrefix).plen>, <IntField (ICMPv6NDOptNewRtrPrefix).res>, <IP6Field (ICMPv6NDOptNewRtrPrefix).prefix>]
- class scapy.layers.inet6.ICMPv6NDOptPREF64(_pkt, /, *, type=38, len=2, scaledlifetime=0, plc=0, prefix='::')[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptPREF64'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptPrefixInfo(_pkt, /, *, type=3, len=4, prefixlen=64, L=1, A=1, R=0, res1=0, validlifetime=4294967295, preferredlifetime=4294967295, res2=0, prefix='::')[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptPrefixInfo'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteField (ICMPv6NDOptPrefixInfo).type>, <ByteField (ICMPv6NDOptPrefixInfo).len>, <ByteField (ICMPv6NDOptPrefixInfo).prefixlen>, <BitField (ICMPv6NDOptPrefixInfo).L>, <BitField (ICMPv6NDOptPrefixInfo).A>, <BitField (ICMPv6NDOptPrefixInfo).R>, <BitField (ICMPv6NDOptPrefixInfo).res1>, <XIntField (ICMPv6NDOptPrefixInfo).validlifetime>, <XIntField (ICMPv6NDOptPrefixInfo).preferredlifetime>, <XIntField (ICMPv6NDOptPrefixInfo).res2>, <IP6Field (ICMPv6NDOptPrefixInfo).prefix>]
- class scapy.layers.inet6.ICMPv6NDOptRDNSS(_pkt, /, *, type=25, len=None, res=None, lifetime=4294967295, dns=[])[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptRDNSS'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptRedirectedHdr(_pkt, /, *, type=4, len=None, res=b'\x00\x00\x00\x00\x00\x00', pkt=b'')[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptRedirectedHdr'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptRouteInfo(_pkt, /, *, type=24, len=None, plen=None, res1=0, prf=0, res2=0, rtlifetime=4294967295, prefix=None)[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptRouteInfo'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteField (ICMPv6NDOptRouteInfo).type>, <FieldLenField (ICMPv6NDOptRouteInfo).len>, <ByteField (ICMPv6NDOptRouteInfo).plen>, <BitField (ICMPv6NDOptRouteInfo).res1>, <BitEnumField (ICMPv6NDOptRouteInfo).prf>, <BitField (ICMPv6NDOptRouteInfo).res2>, <IntField (ICMPv6NDOptRouteInfo).rtlifetime>, <_IP6PrefixField (ICMPv6NDOptRouteInfo).prefix>]
- class scapy.layers.inet6.ICMPv6NDOptShortcutLimit(_pkt, /, *, type=6, len=1, shortcutlim=40, res1=0, res2=0)[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptShortcutLimit'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptSrcAddrList(_pkt, /, *, type=9, len=None, res=b'\x00\x00\x00\x00\x00\x00', addrlist=[])[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptSrcAddrList'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteField (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).type>, <FieldLenField (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).len>, <StrFixedLenField (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).res>, <IP6ListField (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).addrlist>]
- class scapy.layers.inet6.ICMPv6NDOptSrcLLAddr(_pkt, /, *, type=1, len=1, lladdr=None)[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptSrcLLAddr'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NDOptTgtAddrList(_pkt, /, *, type=10, len=None, res=b'\x00\x00\x00\x00\x00\x00', addrlist=[])[source]
Bases:
ICMPv6NDOptSrcAddrList- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptTgtAddrList'>, <class 'scapy.layers.inet6.ICMPv6NDOptSrcAddrList'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteField (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).type>, <FieldLenField (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).len>, <StrFixedLenField (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).res>, <IP6ListField (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).addrlist>]
- class scapy.layers.inet6.ICMPv6NDOptUnknown(_pkt, /, *, type=0, len=None, data=b'')[source]
Bases:
_ICMPv6NDGuessPayload,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptUnknown'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6ND_INDAdv(_pkt, /, *, type=142, code=0, cksum=None, reserved=0)[source]
Bases:
_ICMPv6NDGuessPayload,_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6ND_INDAdv'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6ND_INDSol(_pkt, /, *, type=141, code=0, cksum=None, reserved=0)[source]
Bases:
_ICMPv6NDGuessPayload,_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6ND_INDSol'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6ND_NA(_pkt, /, *, type=136, code=0, cksum=None, R=1, S=0, O=1, res=0, tgt='::')[source]
Bases:
_ICMPv6NDGuessPayload,_ICMPv6,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6ND_NA'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6ND_NA).type>, <ByteField (ICMPv6ND_NA).code>, <XShortField (ICMPv6ND_NA).cksum>, <BitField (ICMPv6ND_NA).R>, <BitField (ICMPv6ND_NA).S>, <BitField (ICMPv6ND_NA).O>, <XBitField (ICMPv6ND_NA).res>, <IP6Field (ICMPv6ND_NA).tgt>]
- class scapy.layers.inet6.ICMPv6ND_NS(_pkt, /, *, type=135, code=0, cksum=None, res=0, tgt='::')[source]
Bases:
_ICMPv6NDGuessPayload,_ICMPv6,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6ND_NS'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6ND_RA(_pkt, /, *, type=134, code=0, cksum=None, chlim=0, M=0, O=0, H=0, prf=1, P=0, res=0, routerlifetime=1800, reachabletime=0, retranstimer=0)[source]
Bases:
_ICMPv6NDGuessPayload,_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6ND_RA'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6ND_RA).type>, <ByteField (ICMPv6ND_RA).code>, <XShortField (ICMPv6ND_RA).cksum>, <ByteField (ICMPv6ND_RA).chlim>, <BitField (ICMPv6ND_RA).M>, <BitField (ICMPv6ND_RA).O>, <BitField (ICMPv6ND_RA).H>, <BitEnumField (ICMPv6ND_RA).prf>, <BitField (ICMPv6ND_RA).P>, <BitField (ICMPv6ND_RA).res>, <ShortField (ICMPv6ND_RA).routerlifetime>, <IntField (ICMPv6ND_RA).reachabletime>, <IntField (ICMPv6ND_RA).retranstimer>]
- class scapy.layers.inet6.ICMPv6ND_RS(_pkt, /, *, type=133, code=0, cksum=None, res=0)[source]
Bases:
_ICMPv6NDGuessPayload,_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6ND_RS'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6ND_Redirect(_pkt, /, *, type=137, code=0, cksum=None, res=0, tgt='::', dst='::')[source]
Bases:
_ICMPv6NDGuessPayload,_ICMPv6,Packet- aliastypes = [<class 'scapy.layers.inet6.ICMPv6ND_Redirect'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6NIQueryIPv4(_pkt, /, *, type=139, code=None, cksum=None, qtype=4, unused=0, flags=<Flag 0 ()>, nonce=<RandBin>, data=(1, b'\x00\x00\x00'))[source]
Bases:
ICMPv6NIQueryNOOP- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIQueryIPv4'>, <class 'scapy.layers.inet6.ICMPv6NIQueryNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).type>, <NIQueryCodeField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).code>, <XShortField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).cksum>, <ShortEnumField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).qtype>, <BitField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).unused>, <FlagsField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).flags>, <NonceField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).nonce>, <NIQueryDataField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).data>]
- class scapy.layers.inet6.ICMPv6NIQueryIPv6(_pkt, /, *, type=139, code=None, cksum=None, qtype=3, unused=0, flags=62, nonce=<RandBin>, data=(1, b'\x00\x00\x00'))[source]
Bases:
ICMPv6NIQueryNOOP- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIQueryIPv6'>, <class 'scapy.layers.inet6.ICMPv6NIQueryNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).type>, <NIQueryCodeField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).code>, <XShortField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).cksum>, <ShortEnumField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).qtype>, <BitField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).unused>, <FlagsField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).flags>, <NonceField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).nonce>, <NIQueryDataField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).data>]
- class scapy.layers.inet6.ICMPv6NIQueryNOOP(_pkt, /, *, type=139, code=None, cksum=None, qtype=0, unused=0, flags=<Flag 0 ()>, nonce=<RandBin>, data=(1, b'\x00\x00\x00'))[source]
Bases:
_ICMPv6NIHashret,_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIQueryNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).type>, <NIQueryCodeField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).code>, <XShortField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).cksum>, <ShortEnumField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).qtype>, <BitField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).unused>, <FlagsField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).flags>, <NonceField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).nonce>, <NIQueryDataField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).data>]
- class scapy.layers.inet6.ICMPv6NIQueryName(_pkt, /, *, type=139, code=None, cksum=None, qtype=2, unused=0, flags=<Flag 0 ()>, nonce=<RandBin>, data=(1, b'\x00\x00\x00'))[source]
Bases:
ICMPv6NIQueryNOOP- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIQueryName'>, <class 'scapy.layers.inet6.ICMPv6NIQueryNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).type>, <NIQueryCodeField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).code>, <XShortField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).cksum>, <ShortEnumField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).qtype>, <BitField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).unused>, <FlagsField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).flags>, <NonceField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).nonce>, <NIQueryDataField (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).data>]
- class scapy.layers.inet6.ICMPv6NIReplyIPv4(_pkt, /, *, type=140, code=0, cksum=None, qtype=4, unused=0, flags=<Flag 0 ()>, nonce=<RandBin>, data=(0, None))[source]
Bases:
ICMPv6NIReplyNOOP- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIReplyIPv4'>, <class 'scapy.layers.inet6.ICMPv6NIReplyNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).type>, <ByteEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).code>, <XShortField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).cksum>, <ShortEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).qtype>, <BitField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).unused>, <FlagsField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).flags>, <NonceField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).nonce>, <NIReplyDataField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).data>]
- class scapy.layers.inet6.ICMPv6NIReplyIPv6(_pkt, /, *, type=140, code=0, cksum=None, qtype=3, unused=0, flags=<Flag 0 ()>, nonce=<RandBin>, data=(0, None))[source]
Bases:
ICMPv6NIReplyNOOP- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIReplyIPv6'>, <class 'scapy.layers.inet6.ICMPv6NIReplyNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).type>, <ByteEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).code>, <XShortField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).cksum>, <ShortEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).qtype>, <BitField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).unused>, <FlagsField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).flags>, <NonceField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).nonce>, <NIReplyDataField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).data>]
- class scapy.layers.inet6.ICMPv6NIReplyNOOP(_pkt, /, *, type=140, code=0, cksum=None, qtype=0, unused=0, flags=<Flag 0 ()>, nonce=<RandBin>, data=(0, None))[source]
Bases:
_ICMPv6NIAnswers,_ICMPv6NIHashret,_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIReplyNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).type>, <ByteEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).code>, <XShortField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).cksum>, <ShortEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).qtype>, <BitField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).unused>, <FlagsField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).flags>, <NonceField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).nonce>, <NIReplyDataField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).data>]
- class scapy.layers.inet6.ICMPv6NIReplyName(_pkt, /, *, type=140, code=0, cksum=None, qtype=2, unused=0, flags=<Flag 0 ()>, nonce=<RandBin>, data=(0, None))[source]
Bases:
ICMPv6NIReplyNOOP- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIReplyName'>, <class 'scapy.layers.inet6.ICMPv6NIReplyNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).type>, <ByteEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).code>, <XShortField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).cksum>, <ShortEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).qtype>, <BitField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).unused>, <FlagsField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).flags>, <NonceField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).nonce>, <NIReplyDataField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).data>]
- class scapy.layers.inet6.ICMPv6NIReplyRefuse(_pkt, /, *, type=140, code=1, cksum=None, qtype=0, unused=0, flags=<Flag 0 ()>, nonce=<RandBin>, data=(0, None))[source]
Bases:
ICMPv6NIReplyNOOP- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIReplyRefuse'>, <class 'scapy.layers.inet6.ICMPv6NIReplyNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).type>, <ByteEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).code>, <XShortField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).cksum>, <ShortEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).qtype>, <BitField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).unused>, <FlagsField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).flags>, <NonceField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).nonce>, <NIReplyDataField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).data>]
- class scapy.layers.inet6.ICMPv6NIReplyUnknown(_pkt, /, *, type=140, code=2, cksum=None, qtype=0, unused=0, flags=<Flag 0 ()>, nonce=<RandBin>, data=(0, None))[source]
Bases:
ICMPv6NIReplyNOOP- aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIReplyUnknown'>, <class 'scapy.layers.inet6.ICMPv6NIReplyNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).type>, <ByteEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).code>, <XShortField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).cksum>, <ShortEnumField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).qtype>, <BitField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).unused>, <FlagsField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).flags>, <NonceField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).nonce>, <NIReplyDataField (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).data>]
- class scapy.layers.inet6.ICMPv6PacketTooBig(_pkt, /, *, type=2, code=0, cksum=None, mtu=1280)[source]
Bases:
_ICMPv6Error- aliastypes = [<class 'scapy.layers.inet6.ICMPv6PacketTooBig'>, <class 'scapy.layers.inet6._ICMPv6Error'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6ParamProblem(_pkt, /, *, type=4, code=0, cksum=None, ptr=6)[source]
Bases:
_ICMPv6Error- aliastypes = [<class 'scapy.layers.inet6.ICMPv6ParamProblem'>, <class 'scapy.layers.inet6._ICMPv6Error'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.ICMPv6RPL(_pkt, /, *, type=155, code=0, cksum=None)[source]
Bases:
_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6RPL'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6RPL).type>, <ByteEnumField (ICMPv6RPL).code>, <XShortField (ICMPv6RPL).cksum>]
- payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({'code': 0}, <class 'scapy.contrib.rpl.RPLDIS'>), ({'code': 1}, <class 'scapy.contrib.rpl.RPLDIO'>), ({'code': 2}, <class 'scapy.contrib.rpl.RPLDAO'>), ({'code': 3}, <class 'scapy.contrib.rpl.RPLDAOACK'>), ({'code': 7}, <class 'scapy.contrib.rpl.RPLDCO'>), ({'code': 8}, <class 'scapy.contrib.rpl.RPLDCOACK'>)]
- class scapy.layers.inet6.ICMPv6TimeExceeded(_pkt, /, *, type=3, code=0, cksum=None, length=0, unused=0, extpad=b'', ext=None)[source]
Bases:
_ICMPv6Error- aliastypes = [<class 'scapy.layers.inet6.ICMPv6TimeExceeded'>, <class 'scapy.layers.inet6._ICMPv6Error'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ICMPv6TimeExceeded).type>, <ByteEnumField (ICMPv6TimeExceeded).code>, <XShortField (ICMPv6TimeExceeded).cksum>, <ByteField (ICMPv6TimeExceeded).length>, <X3BytesField (ICMPv6TimeExceeded).unused>, <scapy.layers.inet._ICMPExtensionPadField object>, <scapy.layers.inet._ICMPExtensionField object>]
- class scapy.layers.inet6.ICMPv6Unknown(_pkt, /, *, type=1, code=0, cksum=None, msgbody=b'')[source]
Bases:
_ICMPv6- aliastypes = [<class 'scapy.layers.inet6.ICMPv6Unknown'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.IP6ListField(name, default, count_from=None, length_from=None)[source]
Bases:
StrField- count_from
- islist = 1
- length_from
- class scapy.layers.inet6.IPerror6(_pkt, /, *, version=6, tc=0, fl=0, plen=None, nh=59, hlim=64, src=None, dst=None)[source]
Bases:
IPv6- aliastypes = [<class 'scapy.layers.inet6.IPerror6'>, <class 'scapy.layers.inet6.IPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<BitField (IPv6,IPerror6).version>, <BitField (IPv6,IPerror6).tc>, <BitField (IPv6,IPerror6).fl>, <ShortField (IPv6,IPerror6).plen>, <ByteEnumField (IPv6,IPerror6).nh>, <ByteField (IPv6,IPerror6).hlim>, <SourceIP6Field (IPv6,IPerror6).src>, <DestIP6Field (IPv6,IPerror6).dst>]
- class scapy.layers.inet6.IPv46(_pkt, /, *, version=4, ihl=None, tos=0, len=None, id=1, flags=<Flag 0 ()>, frag=0, ttl=64, proto=0, chksum=None, src=None, dst=None, options=[])[source]
-
This class implements a dispatcher that is used to detect the IP version while parsing Raw IP pcap files.
- aliastypes = [<class 'scapy.layers.inet6.IPv46'>, <class 'scapy.layers.inet.IP'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<BitField (IP,IPerror,IPv46).version>, <BitField (IP,IPerror,IPv46).ihl>, <XByteField (IP,IPerror,IPv46).tos>, <ShortField (IP,IPerror,IPv46).len>, <ShortField (IP,IPerror,IPv46).id>, <FlagsField (IP,IPerror,IPv46).flags>, <BitField (IP,IPerror,IPv46).frag>, <ByteField (IP,IPerror,IPv46).ttl>, <ByteEnumField (IP,IPerror,IPv46).proto>, <XShortField (IP,IPerror,IPv46).chksum>, <scapy.fields.Emph object>, <scapy.fields.Emph object>, <PacketListField (IP,IPerror,IPv46).options>]
- class scapy.layers.inet6.IPv6(_pkt, /, *, version=6, tc=0, fl=0, plen=None, nh=59, hlim=64, src=None, dst=None)[source]
Bases:
_IPv6GuessPayload,Packet,IPTools- aliastypes = [<class 'scapy.layers.inet6.IPv6'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<BitField (IPv6,IPerror6).version>, <BitField (IPv6,IPerror6).tc>, <BitField (IPv6,IPerror6).fl>, <ShortField (IPv6,IPerror6).plen>, <ByteEnumField (IPv6,IPerror6).nh>, <ByteField (IPv6,IPerror6).hlim>, <SourceIP6Field (IPv6,IPerror6).src>, <DestIP6Field (IPv6,IPerror6).dst>]
- payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({'nh': 6}, <class 'scapy.layers.inet.TCP'>), ({'nh': 17}, <class 'scapy.layers.inet.UDP'>), ({'nh': 41}, <class 'scapy.layers.inet6.IPv6'>), ({'nh': 4}, <class 'scapy.layers.inet.IP'>), ({'nh': 47}, <class 'scapy.layers.l2.GRE'>), ({'nh': 112}, <class 'scapy.layers.vrrp.VRRPv3'>), ({'nh': 132}, <class 'scapy.layers.sctp.SCTP'>), ({'nh': 88}, <class 'scapy.contrib.eigrp.EIGRP'>), ({'nh': 137}, <class 'scapy.contrib.mpls.MPLS'>), ({'nh': 51}, <class 'scapy.layers.ipsec.AH'>), ({'nh': 50}, <class 'scapy.layers.ipsec.ESP'>), ({'nh': 89}, <class 'scapy.contrib.ospf.OSPFv3_Hdr'>), ({'nh': 103}, <class 'scapy.contrib.pim.PIMv2Hdr'>)]
- class scapy.layers.inet6.IPv6ExtHdrDestOpt(_pkt, /, *, nh=59, len=None, autopad=1, options=[])[source]
Bases:
_IPv6ExtHdr- aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrDestOpt'>, <class 'scapy.layers.inet6._IPv6ExtHdr'>, <class 'scapy.layers.inet6.IPv6'>]
- class scapy.layers.inet6.IPv6ExtHdrFragment(_pkt, /, *, nh=59, res1=0, offset=0, res2=0, m=0, id=None)[source]
Bases:
_IPv6ExtHdr- aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrFragment'>, <class 'scapy.layers.inet6._IPv6ExtHdr'>, <class 'scapy.layers.inet6.IPv6'>]
- class scapy.layers.inet6.IPv6ExtHdrHopByHop(_pkt, /, *, nh=59, len=None, autopad=1, options=[])[source]
Bases:
_IPv6ExtHdr- aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrHopByHop'>, <class 'scapy.layers.inet6._IPv6ExtHdr'>, <class 'scapy.layers.inet6.IPv6'>]
- class scapy.layers.inet6.IPv6ExtHdrRouting(_pkt, /, *, nh=59, len=None, type=0, segleft=None, reserved=0, addresses=[])[source]
Bases:
_IPv6ExtHdr- aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrRouting'>, <class 'scapy.layers.inet6._IPv6ExtHdr'>, <class 'scapy.layers.inet6.IPv6'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (IPv6ExtHdrRouting).nh>, <FieldLenField (IPv6ExtHdrRouting).len>, <ByteField (IPv6ExtHdrRouting).type>, <ByteField (IPv6ExtHdrRouting).segleft>, <BitField (IPv6ExtHdrRouting).reserved>, <IP6ListField (IPv6ExtHdrRouting).addresses>]
- class scapy.layers.inet6.IPv6ExtHdrSegmentRouting(_pkt, /, *, nh=59, len=None, type=4, segleft=None, lastentry=None, unused1=0, protected=0, oam=0, alert=0, hmac=0, unused2=0, tag=0, addresses=['::1'], tlv_objects=[])[source]
Bases:
_IPv6ExtHdr- aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrSegmentRouting'>, <class 'scapy.layers.inet6._IPv6ExtHdr'>, <class 'scapy.layers.inet6.IPv6'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (IPv6ExtHdrSegmentRouting).nh>, <ByteField (IPv6ExtHdrSegmentRouting).len>, <ByteField (IPv6ExtHdrSegmentRouting).type>, <ByteField (IPv6ExtHdrSegmentRouting).segleft>, <ByteField (IPv6ExtHdrSegmentRouting).lastentry>, <BitField (IPv6ExtHdrSegmentRouting).unused1>, <BitField (IPv6ExtHdrSegmentRouting).protected>, <BitField (IPv6ExtHdrSegmentRouting).oam>, <BitField (IPv6ExtHdrSegmentRouting).alert>, <BitField (IPv6ExtHdrSegmentRouting).hmac>, <BitField (IPv6ExtHdrSegmentRouting).unused2>, <ShortField (IPv6ExtHdrSegmentRouting).tag>, <IP6ListField (IPv6ExtHdrSegmentRouting).addresses>, <PacketListField (IPv6ExtHdrSegmentRouting).tlv_objects>]
- class scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV(_pkt, /, *, type=None, len=0, value=b'')[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (IPv6ExtHdrSegmentRoutingTLV).type>, <ByteField (IPv6ExtHdrSegmentRoutingTLV).len>, <StrLenField (IPv6ExtHdrSegmentRoutingTLV).value>]
- registered_sr_tlv = {0: <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVPad1'>, 1: <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVIngressNode'>, 2: <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVEgressNode'>, 4: <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVPadN'>, 5: <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVHMAC'>, None: <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV'>}
- class scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVEgressNode(_pkt, /, *, type=2, len=18, reserved=0, flags=0, egress_node='::1')[source]
Bases:
IPv6ExtHdrSegmentRoutingTLV- aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVEgressNode'>, <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (IPv6ExtHdrSegmentRoutingTLVEgressNode).type>, <ByteField (IPv6ExtHdrSegmentRoutingTLVEgressNode).len>, <ByteField (IPv6ExtHdrSegmentRoutingTLVEgressNode).reserved>, <ByteField (IPv6ExtHdrSegmentRoutingTLVEgressNode).flags>, <IP6Field (IPv6ExtHdrSegmentRoutingTLVEgressNode).egress_node>]
- class scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVHMAC(_pkt, /, *, type=5, len=None, D=0, reserved=0, hmackeyid=0, hmac=b'')[source]
Bases:
IPv6ExtHdrSegmentRoutingTLV- aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVHMAC'>, <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (IPv6ExtHdrSegmentRoutingTLVHMAC).type>, <FieldLenField (IPv6ExtHdrSegmentRoutingTLVHMAC).len>, <BitField (IPv6ExtHdrSegmentRoutingTLVHMAC).D>, <BitField (IPv6ExtHdrSegmentRoutingTLVHMAC).reserved>, <IntField (IPv6ExtHdrSegmentRoutingTLVHMAC).hmackeyid>, <StrLenField (IPv6ExtHdrSegmentRoutingTLVHMAC).hmac>]
- class scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVIngressNode(_pkt, /, *, type=1, len=18, reserved=0, flags=0, ingress_node='::1')[source]
Bases:
IPv6ExtHdrSegmentRoutingTLV- aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVIngressNode'>, <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (IPv6ExtHdrSegmentRoutingTLVIngressNode).type>, <ByteField (IPv6ExtHdrSegmentRoutingTLVIngressNode).len>, <ByteField (IPv6ExtHdrSegmentRoutingTLVIngressNode).reserved>, <ByteField (IPv6ExtHdrSegmentRoutingTLVIngressNode).flags>, <IP6Field (IPv6ExtHdrSegmentRoutingTLVIngressNode).ingress_node>]
- class scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVPad1(_pkt, /, *, type=0)[source]
Bases:
IPv6ExtHdrSegmentRoutingTLV- aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVPad1'>, <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVPadN(_pkt, /, *, type=4, len=None, padding=b'\x00')[source]
Bases:
IPv6ExtHdrSegmentRoutingTLV- aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVPadN'>, <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.Jumbo(_pkt, /, *, otype=194, optlen=4, jumboplen=None)[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.inet6.Jumbo'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.L3RawSocket6(type=34525, filter=None, iface=None, promisc=None, nofilter=0)[source]
Bases:
L3RawSocket
- class scapy.layers.inet6.LifetimeField(name: str, default: int | None)[source]
Bases:
ShortField
- class scapy.layers.inet6.MIP6MH_BA(_pkt, /, *, nh=59, len=None, mhtype=6, res=None, cksum=None, status=0, flags=<Flag 4 (K)>, res2=None, seq=None, mhtime=0, autopad=1, options=[])[source]
Bases:
_MobilityHeader- aliastypes = [<class 'scapy.layers.inet6.MIP6MH_BA'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6MH_BA).nh>, <ByteField (MIP6MH_BA).len>, <ByteEnumField (MIP6MH_BA).mhtype>, <ByteField (MIP6MH_BA).res>, <XShortField (MIP6MH_BA).cksum>, <ByteEnumField (MIP6MH_BA).status>, <FlagsField (MIP6MH_BA).flags>, <XBitField (MIP6MH_BA).res2>, <XShortField (MIP6MH_BA).seq>, <XShortField (MIP6MH_BA).mhtime>, <_PhantomAutoPadField (MIP6MH_BA).autopad>, <_OptionsField (MIP6MH_BA).options>]
- class scapy.layers.inet6.MIP6MH_BE(_pkt, /, *, nh=59, len=None, mhtype=7, res=0, cksum=None, status=0, reserved=0, ha='::', options=[])[source]
Bases:
_MobilityHeader- aliastypes = [<class 'scapy.layers.inet6.MIP6MH_BE'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6MH_BE).nh>, <ByteField (MIP6MH_BE).len>, <ByteEnumField (MIP6MH_BE).mhtype>, <ByteField (MIP6MH_BE).res>, <XShortField (MIP6MH_BE).cksum>, <ByteEnumField (MIP6MH_BE).status>, <ByteField (MIP6MH_BE).reserved>, <IP6Field (MIP6MH_BE).ha>, <_OptionsField (MIP6MH_BE).options>]
- class scapy.layers.inet6.MIP6MH_BRR(_pkt, /, *, nh=59, len=None, mhtype=0, res=None, cksum=None, res2=None, autopad=1, options=[])[source]
Bases:
_MobilityHeader- aliastypes = [<class 'scapy.layers.inet6.MIP6MH_BRR'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6MH_BRR).nh>, <ByteField (MIP6MH_BRR).len>, <ByteEnumField (MIP6MH_BRR).mhtype>, <ByteField (MIP6MH_BRR).res>, <XShortField (MIP6MH_BRR).cksum>, <ShortField (MIP6MH_BRR).res2>, <_PhantomAutoPadField (MIP6MH_BRR).autopad>, <_OptionsField (MIP6MH_BRR).options>]
- class scapy.layers.inet6.MIP6MH_BU(_pkt, /, *, nh=59, len=None, mhtype=5, res=None, cksum=None, seq=None, flags=<Flag 104 (KHA)>, reserved=0, mhtime=3, autopad=1, options=[])[source]
Bases:
_MobilityHeader- aliastypes = [<class 'scapy.layers.inet6.MIP6MH_BU'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6MH_BU).nh>, <ByteField (MIP6MH_BU).len>, <ByteEnumField (MIP6MH_BU).mhtype>, <ByteField (MIP6MH_BU).res>, <XShortField (MIP6MH_BU).cksum>, <XShortField (MIP6MH_BU).seq>, <FlagsField (MIP6MH_BU).flags>, <XBitField (MIP6MH_BU).reserved>, <LifetimeField (MIP6MH_BU).mhtime>, <_PhantomAutoPadField (MIP6MH_BU).autopad>, <_OptionsField (MIP6MH_BU).options>]
- class scapy.layers.inet6.MIP6MH_CoT(_pkt, /, *, nh=59, len=None, mhtype=4, res=None, cksum=None, index=None, cookie=b'\x00\x00\x00\x00\x00\x00\x00\x00', token=b'\x00\x00\x00\x00\x00\x00\x00\x00', autopad=1, options=[])[source]
Bases:
MIP6MH_HoT- aliastypes = [<class 'scapy.layers.inet6.MIP6MH_CoT'>, <class 'scapy.layers.inet6.MIP6MH_HoT'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6MH_HoT,MIP6MH_CoT).nh>, <ByteField (MIP6MH_HoT,MIP6MH_CoT).len>, <ByteEnumField (MIP6MH_HoT,MIP6MH_CoT).mhtype>, <ByteField (MIP6MH_HoT,MIP6MH_CoT).res>, <XShortField (MIP6MH_HoT,MIP6MH_CoT).cksum>, <ShortField (MIP6MH_HoT,MIP6MH_CoT).index>, <StrFixedLenField (MIP6MH_HoT,MIP6MH_CoT).cookie>, <StrFixedLenField (MIP6MH_HoT,MIP6MH_CoT).token>, <_PhantomAutoPadField (MIP6MH_HoT,MIP6MH_CoT).autopad>, <_OptionsField (MIP6MH_HoT,MIP6MH_CoT).options>]
- class scapy.layers.inet6.MIP6MH_CoTI(_pkt, /, *, nh=59, len=None, mhtype=2, res=None, cksum=None, reserved=b'\x00\x00', cookie=b'\x00\x00\x00\x00\x00\x00\x00\x00', autopad=1, options=[])[source]
Bases:
MIP6MH_HoTI- aliastypes = [<class 'scapy.layers.inet6.MIP6MH_CoTI'>, <class 'scapy.layers.inet6.MIP6MH_HoTI'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6MH_HoTI,MIP6MH_CoTI).nh>, <ByteField (MIP6MH_HoTI,MIP6MH_CoTI).len>, <ByteEnumField (MIP6MH_HoTI,MIP6MH_CoTI).mhtype>, <ByteField (MIP6MH_HoTI,MIP6MH_CoTI).res>, <XShortField (MIP6MH_HoTI,MIP6MH_CoTI).cksum>, <StrFixedLenField (MIP6MH_HoTI,MIP6MH_CoTI).reserved>, <StrFixedLenField (MIP6MH_HoTI,MIP6MH_CoTI).cookie>, <_PhantomAutoPadField (MIP6MH_HoTI,MIP6MH_CoTI).autopad>, <_OptionsField (MIP6MH_HoTI,MIP6MH_CoTI).options>]
- class scapy.layers.inet6.MIP6MH_Generic(_pkt, /, *, nh=59, len=None, mhtype=None, res=None, cksum=None, msg=b'\x00\x00')[source]
Bases:
_MobilityHeader- aliastypes = [<class 'scapy.layers.inet6.MIP6MH_Generic'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.MIP6MH_HoT(_pkt, /, *, nh=59, len=None, mhtype=3, res=None, cksum=None, index=None, cookie=b'\x00\x00\x00\x00\x00\x00\x00\x00', token=b'\x00\x00\x00\x00\x00\x00\x00\x00', autopad=1, options=[])[source]
Bases:
_MobilityHeader- aliastypes = [<class 'scapy.layers.inet6.MIP6MH_HoT'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6MH_HoT,MIP6MH_CoT).nh>, <ByteField (MIP6MH_HoT,MIP6MH_CoT).len>, <ByteEnumField (MIP6MH_HoT,MIP6MH_CoT).mhtype>, <ByteField (MIP6MH_HoT,MIP6MH_CoT).res>, <XShortField (MIP6MH_HoT,MIP6MH_CoT).cksum>, <ShortField (MIP6MH_HoT,MIP6MH_CoT).index>, <StrFixedLenField (MIP6MH_HoT,MIP6MH_CoT).cookie>, <StrFixedLenField (MIP6MH_HoT,MIP6MH_CoT).token>, <_PhantomAutoPadField (MIP6MH_HoT,MIP6MH_CoT).autopad>, <_OptionsField (MIP6MH_HoT,MIP6MH_CoT).options>]
- class scapy.layers.inet6.MIP6MH_HoTI(_pkt, /, *, nh=59, len=None, mhtype=1, res=None, cksum=None, reserved=b'\x00\x00', cookie=b'\x00\x00\x00\x00\x00\x00\x00\x00', autopad=1, options=[])[source]
Bases:
_MobilityHeader- aliastypes = [<class 'scapy.layers.inet6.MIP6MH_HoTI'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6MH_HoTI,MIP6MH_CoTI).nh>, <ByteField (MIP6MH_HoTI,MIP6MH_CoTI).len>, <ByteEnumField (MIP6MH_HoTI,MIP6MH_CoTI).mhtype>, <ByteField (MIP6MH_HoTI,MIP6MH_CoTI).res>, <XShortField (MIP6MH_HoTI,MIP6MH_CoTI).cksum>, <StrFixedLenField (MIP6MH_HoTI,MIP6MH_CoTI).reserved>, <StrFixedLenField (MIP6MH_HoTI,MIP6MH_CoTI).cookie>, <_PhantomAutoPadField (MIP6MH_HoTI,MIP6MH_CoTI).autopad>, <_OptionsField (MIP6MH_HoTI,MIP6MH_CoTI).options>]
- class scapy.layers.inet6.MIP6OptAltCoA(_pkt, /, *, otype=3, olen=16, acoa='::')[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptAltCoA'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptAltCoA).otype>, <ByteField (MIP6OptAltCoA).olen>, <IP6Field (MIP6OptAltCoA).acoa>]
- x = 8
- y = 6
- class scapy.layers.inet6.MIP6OptBRAdvice(_pkt, /, *, otype=2, olen=2, rinter=0)[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptBRAdvice'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptBRAdvice).otype>, <ByteField (MIP6OptBRAdvice).olen>, <ShortField (MIP6OptBRAdvice).rinter>]
- x = 2
- y = 0
- class scapy.layers.inet6.MIP6OptBindingAuthData(_pkt, /, *, otype=5, olen=16, authenticator=0)[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptBindingAuthData'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptBindingAuthData).otype>, <ByteField (MIP6OptBindingAuthData).olen>, <BitField (MIP6OptBindingAuthData).authenticator>]
- x = 8
- y = 2
- class scapy.layers.inet6.MIP6OptCGAParams(_pkt, /, *, otype=12, olen=None, cgaparams=b'')[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptCGAParams'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptCGAParams).otype>, <FieldLenField (MIP6OptCGAParams).olen>, <StrLenField (MIP6OptCGAParams).cgaparams>]
- x = 0
- y = 0
- class scapy.layers.inet6.MIP6OptCGAParamsReq(_pkt, /, *, otype=11, olen=0)[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptCGAParamsReq'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptCGAParamsReq).otype>, <ByteField (MIP6OptCGAParamsReq).olen>]
- x = 0
- y = 0
- class scapy.layers.inet6.MIP6OptCareOfTest(_pkt, /, *, otype=16, olen=None, cokt=b'\x00\x00\x00\x00\x00\x00\x00\x00')[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptCareOfTest'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptCareOfTest).otype>, <FieldLenField (MIP6OptCareOfTest).olen>, <StrLenField (MIP6OptCareOfTest).cokt>]
- x = 0
- y = 0
- class scapy.layers.inet6.MIP6OptCareOfTestInit(_pkt, /, *, otype=15, olen=0)[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptCareOfTestInit'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptCareOfTestInit).otype>, <ByteField (MIP6OptCareOfTestInit).olen>]
- x = 0
- y = 0
- class scapy.layers.inet6.MIP6OptHomeKeygenToken(_pkt, /, *, otype=14, olen=None, hkt=b'')[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptHomeKeygenToken'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptHomeKeygenToken).otype>, <FieldLenField (MIP6OptHomeKeygenToken).olen>, <StrLenField (MIP6OptHomeKeygenToken).hkt>]
- x = 0
- y = 0
- class scapy.layers.inet6.MIP6OptLLAddr(_pkt, /, *, otype=7, olen=7, ocode=2, pad=0, lla='00:00:00:00:00:00')[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptLLAddr'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptLLAddr).otype>, <ByteField (MIP6OptLLAddr).olen>, <ByteEnumField (MIP6OptLLAddr).ocode>, <ByteField (MIP6OptLLAddr).pad>, <MACField (MIP6OptLLAddr).lla>]
- x = 0
- y = 0
- class scapy.layers.inet6.MIP6OptMNID(_pkt, /, *, otype=8, olen=None, subtype=1, id=b'')[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptMNID'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptMNID).otype>, <FieldLenField (MIP6OptMNID).olen>, <ByteEnumField (MIP6OptMNID).subtype>, <StrLenField (MIP6OptMNID).id>]
- x = 0
- y = 0
- class scapy.layers.inet6.MIP6OptMobNetPrefix(_pkt, /, *, otype=6, olen=18, reserved=0, plen=64, prefix='::')[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptMobNetPrefix'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptMobNetPrefix).otype>, <ByteField (MIP6OptMobNetPrefix).olen>, <ByteField (MIP6OptMobNetPrefix).reserved>, <ByteField (MIP6OptMobNetPrefix).plen>, <IP6Field (MIP6OptMobNetPrefix).prefix>]
- x = 8
- y = 4
- class scapy.layers.inet6.MIP6OptMsgAuth(_pkt, /, *, otype=9, olen=None, subtype=1, mspi=None, authdata=b'AAAAAAAAAAAA')[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptMsgAuth'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptMsgAuth).otype>, <FieldLenField (MIP6OptMsgAuth).olen>, <ByteEnumField (MIP6OptMsgAuth).subtype>, <IntField (MIP6OptMsgAuth).mspi>, <StrLenField (MIP6OptMsgAuth).authdata>]
- x = 4
- y = 1
- class scapy.layers.inet6.MIP6OptNonceIndices(_pkt, /, *, otype=4, olen=16, hni=0, coni=0)[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptNonceIndices'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptNonceIndices).otype>, <ByteField (MIP6OptNonceIndices).olen>, <ShortField (MIP6OptNonceIndices).hni>, <ShortField (MIP6OptNonceIndices).coni>]
- x = 2
- y = 0
- class scapy.layers.inet6.MIP6OptReplayProtection(_pkt, /, *, otype=10, olen=8, timestamp=0)[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptReplayProtection'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptReplayProtection).otype>, <ByteField (MIP6OptReplayProtection).olen>, <NTPTimestampField (MIP6OptReplayProtection).timestamp>]
- x = 8
- y = 2
- class scapy.layers.inet6.MIP6OptSignature(_pkt, /, *, otype=13, olen=None, sig=b'')[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptSignature'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptSignature).otype>, <FieldLenField (MIP6OptSignature).olen>, <StrLenField (MIP6OptSignature).sig>]
- x = 0
- y = 0
- class scapy.layers.inet6.MIP6OptUnknown(_pkt, /, *, otype=6, olen=None, odata=b'')[source]
Bases:
_MIP6OptAlign- aliastypes = [<class 'scapy.layers.inet6.MIP6OptUnknown'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (MIP6OptUnknown).otype>, <FieldLenField (MIP6OptUnknown).olen>, <StrLenField (MIP6OptUnknown).odata>]
- x = 0
- y = 0
- scapy.layers.inet6.NDP_Attack_DAD_DoS_via_NA(iface=None, mac_src_filter=None, tgt_filter=None, reply_mac=None)[source]
Perform the DAD DoS attack using NS described in section 4.1.3 of RFC 3756. This is done by listening incoming NS messages sent from the unspecified address and sending a NA reply for the target address, leading the peer to believe that another node is also performing DAD for that address.
- By default, the fake NA sent to create the DoS uses:
as target address the target address found in received NS.
as IPv6 source address: the target address found in received NS.
as IPv6 destination address: the link-local solicited-node multicast address derived from the target address in received NS.
the mac address of the interface as source (or reply_mac, see below).
the multicast mac address derived from the solicited node multicast address used as IPv6 destination address.
A Target Link-Layer address option (ICMPv6NDOptDstLLAddr) filled with the mac address used as source of the NA.
Following arguments can be used to change the behavior:
- iface: a specific interface (e.g. “eth0”) of the system on which the
DoS should be launched. If None is provided conf.iface is used.
- mac_src_filter: a mac address (e.g “00:13:72:8c:b5:69”) to filter on.
Only NS messages received from this source will trigger replies. This allows limiting the effects of the DoS to a single target by filtering on its mac address. The default value is None: the DoS is not limited to a specific mac address.
- tgt_filter: Same as previous but for a specific target IPv6 address for
received NS. If the target address in the NS message (not the IPv6 destination address) matches that address, then a fake reply will be sent, i.e. the emitter will be a target of the DoS.
- reply_mac: allow specifying a specific source mac address for the reply,
i.e. to prevent the use of the mac address of the interface. This address will also be used in the Target Link-Layer Address option.
- scapy.layers.inet6.NDP_Attack_DAD_DoS_via_NS(iface=None, mac_src_filter=None, tgt_filter=None, reply_mac=None)[source]
Perform the DAD DoS attack using NS described in section 4.1.3 of RFC 3756. This is done by listening incoming NS messages sent from the unspecified address and sending a NS reply for the target address, leading the peer to believe that another node is also performing DAD for that address.
- By default, the fake NS sent to create the DoS uses:
as target address the target address found in received NS.
as IPv6 source address: the unspecified address (::).
as IPv6 destination address: the link-local solicited-node multicast address derived from the target address in received NS.
the mac address of the interface as source (or reply_mac, see below).
the multicast mac address derived from the solicited node multicast address used as IPv6 destination address.
Following arguments can be used to change the behavior:
- iface: a specific interface (e.g. “eth0”) of the system on which the
DoS should be launched. If None is provided conf.iface is used.
- mac_src_filter: a mac address (e.g “00:13:72:8c:b5:69”) to filter on.
Only NS messages received from this source will trigger replies. This allows limiting the effects of the DoS to a single target by filtering on its mac address. The default value is None: the DoS is not limited to a specific mac address.
- tgt_filter: Same as previous but for a specific target IPv6 address for
received NS. If the target address in the NS message (not the IPv6 destination address) matches that address, then a fake reply will be sent, i.e. the emitter will be a target of the DoS.
- reply_mac: allow specifying a specific source mac address for the reply,
i.e. to prevent the use of the mac address of the interface.
- scapy.layers.inet6.NDP_Attack_Fake_Router(ra, iface=None, mac_src_filter=None, ip_src_filter=None)[source]
The purpose of this function is to send provided RA message at layer 2 (i.e. providing a packet starting with IPv6 will not work) in response to received RS messages. In the end, the function is a simple wrapper around sendp() that monitor the link for RS messages.
It is probably better explained with an example:
>>> ra = Ether()/IPv6()/ICMPv6ND_RA() >>> ra /= ICMPv6NDOptPrefixInfo(prefix="2001:db8:1::", prefixlen=64) >>> ra /= ICMPv6NDOptPrefixInfo(prefix="2001:db8:2::", prefixlen=64) >>> ra /= ICMPv6NDOptSrcLLAddr(lladdr="00:11:22:33:44:55") >>> NDP_Attack_Fake_Router(ra, iface="eth0") Fake RA sent in response to RS from fe80::213:58ff:fe8c:b573 Fake RA sent in response to RS from fe80::213:72ff:fe8c:b9ae ...
Following arguments can be used to change the behavior:
ra: the RA message to send in response to received RS message.
- iface: a specific interface (e.g. “eth0”) of the system on which the
DoS should be launched. If none is provided, conf.iface is used.
- mac_src_filter: a mac address (e.g “00:13:72:8c:b5:69”) to filter on.
Only RS messages received from this source will trigger a reply. Note that no changes to provided RA is done which imply that if you intend to target only the source of the RS using this option, you will have to set the Ethernet destination address to the same value in your RA. The default value for this parameter is None: no filtering on the source of RS is done.
- ip_src_filter: an IPv6 address (e.g. fe80::21e:bff:fe4e:3b2) to filter
on. Only RS messages received from this source address will trigger replies. Same comment as for previous argument apply: if you use the option, you will probably want to set a specific Ethernet destination address in the RA.
- scapy.layers.inet6.NDP_Attack_Kill_Default_Router(iface=None, mac_src_filter=None, ip_src_filter=None, reply_mac=None, tgt_mac=None)[source]
The purpose of the function is to monitor incoming RA messages sent by default routers (RA with a non-zero Router Lifetime values) and invalidate them by immediately replying with fake RA messages advertising a zero Router Lifetime value.
The result on receivers is that the router is immediately invalidated, i.e. the associated entry is discarded from the default router list and destination cache is updated to reflect the change.
By default, the function considers all RA messages with a non-zero Router Lifetime value but provides configuration knobs to allow filtering RA sent by specific routers (Ethernet source address). With regard to emission, the multicast all-nodes address is used by default but a specific target can be used, in order for the DoS to apply only to a specific host.
More precisely, following arguments can be used to change the behavior:
- iface: a specific interface (e.g. “eth0”) of the system on which the
DoS should be launched. If None is provided conf.iface is used.
- mac_src_filter: a mac address (e.g “00:13:72:8c:b5:69”) to filter on.
Only RA messages received from this source will trigger replies. If other default routers advertised their presence on the link, their clients will not be impacted by the attack. The default value is None: the DoS is not limited to a specific mac address.
- ip_src_filter: an IPv6 address (e.g. fe80::21e:bff:fe4e:3b2) to filter
on. Only RA messages received from this source address will trigger replies. If other default routers advertised their presence on the link, their clients will not be impacted by the attack. The default value is None: the DoS is not limited to a specific IPv6 source address.
- reply_mac: allow specifying a specific source mac address for the reply,
i.e. to prevent the use of the mac address of the interface.
- tgt_mac: allow limiting the effect of the DoS to a specific host,
by sending the “invalidating RA” only to its mac address.
- scapy.layers.inet6.NDP_Attack_NA_Spoofing(iface=None, mac_src_filter=None, tgt_filter=None, reply_mac=None, router=False)[source]
The main purpose of this function is to send fake Neighbor Advertisement messages to a victim. As the emission of unsolicited Neighbor Advertisement is pretty pointless (from an attacker standpoint) because it will not lead to a modification of a victim’s neighbor cache, the function send advertisements in response to received NS (NS sent as part of the DAD, i.e. with an unspecified address as source, are not considered).
- By default, the fake NA sent to create the DoS uses:
as target address the target address found in received NS.
as IPv6 source address: the target address
as IPv6 destination address: the source IPv6 address of received NS message.
the mac address of the interface as source (or reply_mac, see below).
the source mac address of the received NS as destination macs address of the emitted NA.
A Target Link-Layer address option (ICMPv6NDOptDstLLAddr) filled with the mac address used as source of the NA.
Following arguments can be used to change the behavior:
- iface: a specific interface (e.g. “eth0”) of the system on which the
DoS should be launched. If None is provided conf.iface is used.
- mac_src_filter: a mac address (e.g “00:13:72:8c:b5:69”) to filter on.
Only NS messages received from this source will trigger replies. This allows limiting the effects of the DoS to a single target by filtering on its mac address. The default value is None: the DoS is not limited to a specific mac address.
- tgt_filter: Same as previous but for a specific target IPv6 address for
received NS. If the target address in the NS message (not the IPv6 destination address) matches that address, then a fake reply will be sent, i.e. the emitter will be a target of the DoS.
- reply_mac: allow specifying a specific source mac address for the reply,
i.e. to prevent the use of the mac address of the interface. This address will also be used in the Target Link-Layer Address option.
- router: by the default (False) the ‘R’ flag in the NA used for the reply
is not set. If the parameter is set to True, the ‘R’ flag in the NA is set, advertising us as a router.
Please, keep the following in mind when using the function: for obvious reasons (kernel space vs. Python speed), when the target of the address resolution is on the link, the sender of the NS receives 2 NA messages in a row, the valid one and our fake one. The second one will overwrite the information provided by the first one, i.e. the natural latency of Scapy helps here.
In practice, on a common Ethernet link, the emission of the NA from the genuine target (kernel stack) usually occurs in the same millisecond as the receipt of the NS. The NA generated by Scapy6 will usually come after something 20+ ms. On a usual testbed for instance, this difference is sufficient to have the first data packet sent from the victim to the destination before it even receives our fake NA.
- scapy.layers.inet6.NDP_Attack_NS_Spoofing(src_lladdr=None, src=None, target='2001:db8::1', dst=None, src_mac=None, dst_mac=None, loop=True, inter=1, iface=None)[source]
The main purpose of this function is to send fake Neighbor Solicitations messages to a victim, in order to either create a new entry in its neighbor cache or update an existing one. In section 7.2.3 of RFC 4861, it is stated that a node SHOULD create the entry or update an existing one (if it is not currently performing DAD for the target of the NS). The entry’s reachability # noqa: E501 state is set to STALE.
The two main parameters of the function are the source link-layer address (carried by the Source Link-Layer Address option in the NS) and the source address of the packet.
Unlike some other NDP_Attack_* function, this one is not based on a stimulus/response model. When called, it sends the same NS packet in loop every second (the default)
Following arguments can be used to change the format of the packets:
- src_lladdr: the MAC address used in the Source Link-Layer Address option
included in the NS packet. This is the address that the peer should associate in its neighbor cache with the IPv6 source address of the packet. If None is provided, the mac address of the interface is used.
- src: the IPv6 address used as source of the packet. If None is provided,
an address associated with the emitting interface will be used (based on the destination address of the packet).
- target: the target address of the NS packet. If no value is provided,
a dummy address (2001:db8::1) is used. The value of the target has a direct impact on the destination address of the packet if it is not overridden. By default, the solicited-node multicast address associated with the target is used as destination address of the packet. Consider specifying a specific destination address if you intend to use a target address different than the one of the victim.
- dst: The destination address of the NS. By default, the solicited node
multicast address associated with the target address (see previous parameter) is used if no specific value is provided. The victim is not expected to check the destination address of the packet, so using a multicast address like ff02::1 should work if you want the attack to target all hosts on the link. On the contrary, if you want to be more stealth, you should provide the target address for this parameter in order for the packet to be sent only to the victim.
- src_mac: the MAC address used as source of the packet. By default, this
is the address of the interface. If you want to be more stealth, feel free to use something else. Note that this address is not the that the victim will use to populate its neighbor cache.
- dst_mac: The MAC address used as destination address of the packet. If
the IPv6 destination address is multicast (all-nodes, solicited node, …), it will be computed. If the destination address is unicast, a neighbor solicitation will be performed to get the associated address. If you want the attack to be stealth, you can provide the MAC address using this parameter.
- loop: By default, this parameter is True, indicating that NS packets
will be sent in loop, separated by ‘inter’ seconds (see below). When set to False, a single packet is sent.
- inter: When loop parameter is True (the default), this parameter provides
the interval in seconds used for sending NS packets.
iface: to force the sending interface.
- class scapy.layers.inet6.NIQueryCodeField(name: str, default: int | None, enum: Dict[int, str] | Dict[str, int] | List[str] | DADict[int, str] | Type[Enum] | Tuple[Callable[[int], str], Callable[[str], int]])[source]
Bases:
ByteEnumField
- class scapy.layers.inet6.NIReplyDataField(name: str, default: I | None, fmt: str = 'H', remain: int = 0)[source]
Bases:
StrField
- class scapy.layers.inet6.NonceField(name, default=None)[source]
Bases:
StrFixedLenField
- class scapy.layers.inet6.Pad1(_pkt, /, *, otype=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.inet6.Pad1'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.PadN(_pkt, /, *, otype=1, optlen=None, optdata=b'')[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.inet6.PadN'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.PseudoIPv6(_pkt, /, *, src='::', dst='::', uplen=None, zero=0, nh=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.inet6.PseudoIPv6'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.RouterAlert(_pkt, /, *, otype=5, optlen=2, value=None)[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.inet6.RouterAlert'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.inet6.RplOption(_pkt, /, *, otype=99, optlen=4, Down=0, RankError=0, ForwardError=0, unused=0, RplInstanceId=0, SenderRank=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.inet6.RplOption'>, <class 'scapy.packet.Packet'>]
- fields_desc: List[Field[Any, Any] | _FieldContainer] = [<_OTypeField (RplOption).otype>, <ByteField (RplOption).optlen>, <BitField (RplOption).Down>, <BitField (RplOption).RankError>, <BitField (RplOption).ForwardError>, <BitField (RplOption).unused>, <XByteField (RplOption).RplInstanceId>, <XShortField (RplOption).SenderRank>]
- class scapy.layers.inet6.TracerouteResult6(res=None, name='Traceroute', stats=None)[source]
Bases:
TracerouteResult
- class scapy.layers.inet6.TruncPktLenField(name: str, default: Packet, cls: Union[Callable[[bytes], Packet], Type[Packet]] # noqa: E501, length_from: Optional[Callable[[Packet], int]] # noqa: E501 = None)[source]
Bases:
PacketLenField
- scapy.layers.inet6.computeNIGroupAddr(name)[source]
Compute the NI group Address. Can take a FQDN as input parameter
- scapy.layers.inet6.defragment6(packets)[source]
Performs defragmentation of a list of IPv6 packets. Packets are reordered. Crap is dropped. What lacks is completed by ‘X’ characters.
- scapy.layers.inet6.dnsrepr2names(x)[source]
Take as input a DNS encoded string (possibly compressed) and returns a list of DNS names contained in it. If provided string is already in printable format (does not end with a null character, a one element list is returned). Result is a list.
- scapy.layers.inet6.fragment6(pkt, fragSize)[source]
Performs fragmentation of an IPv6 packet. ‘fragSize’ argument is the expected maximum size of fragment data (MTU). The list of packets is returned.
If packet does not contain an IPv6ExtHdrFragment class, it is added to first IPv6 layer found. If no IPv6 layer exists packet is returned in result list unmodified.
- scapy.layers.inet6.getmacbyip6(ip6: str, chainCC: int = 0) str | None[source]
Returns the MAC address of the next hop used to reach a given IPv6 address.
neighborCache.get() method is used on instantiated neighbor cache. Resolution mechanism is described in associated doc string.
- (chainCC parameter value ends up being passed to sending function
used to perform the resolution, if needed)
See also
getmacbyip()for IPv4.
- scapy.layers.inet6.in6_chksum(nh, u, p)[source]
As Specified in RFC 2460 - 8.1 Upper-Layer Checksums
See also .in6_pseudoheader
- Parameters:
nh – value of upper layer protocol
u – upper layer instance (TCP, UDP, ICMPv6*, ). Instance must be provided with all under layers (IPv6 and all extension headers, for example)
p – the payload of the upper layer provided as a string
- scapy.layers.inet6.in6_pseudoheader(nh: int, u: IP, plen: int) PseudoIPv6[source]
Build an PseudoIPv6 instance as specified in RFC 2460 8.1
This function operates by filling a pseudo header class instance (PseudoIPv6) with: - Next Header value - the address of _final_ destination (if some Routing Header with non segleft field is present in underlayer classes, last address is used.) - the address of _real_ source (basically the source address of an IPv6 class instance available in the underlayer or the source address in HAO option if some Destination Option header found in underlayer includes this option). - the length is the length of provided payload string (‘p’)
- Parameters:
nh – value of upper layer protocol
u – upper layer instance (TCP, UDP, ICMPv6*, ). Instance must be provided with all under layers (IPv6 and all extension headers, for example)
plen – the length of the upper layer and payload
- scapy.layers.inet6.inet6_register_l3(l2, l3)[source]
Resolves the default L2 destination address when IPv6 is used.
- scapy.layers.inet6.names2dnsrepr(x)[source]
Take as input a list of DNS names or a single DNS name and encode it in DNS format (with possible compression) If a string that is already a DNS name in DNS format is passed, it is returned unmodified. Result is a string. !!! At the moment, compression is not implemented !!!
- scapy.layers.inet6.neighsol(addr, src, iface, timeout=1, chainCC=0)[source]
Sends and receive an ICMPv6 Neighbor Solicitation message
This function sends an ICMPv6 Neighbor Solicitation message to get the MAC address of the neighbor with specified IPv6 address address.
‘src’ address is used as the source IPv6 address of the message. Message is sent on ‘iface’. The source MAC address is retrieved accordingly.
By default, timeout waiting for an answer is 1 second.
If no answer is gathered, None is returned. Else, the answer is returned (ethernet frame).