scapy.layers.llmnr
LLMNR (Link Local Multicast Node Resolution).
[RFC 4795]
LLMNR is based on the DNS packet format (RFC1035 Section 4) RFC also envisions LLMNR over TCP. Like vista, we don’t support it – arno
- class scapy.layers.llmnr.LLMNRQuery(_pkt, /, *, id=0, qr=0, opcode=0, c=0, tc=0, t=0, z=0, rcode=0, qdcount=None, ancount=None, nscount=None, arcount=None, qd=[], an=[], ns=[], ar=[])[source]
Bases:
DNSCompressedPacket- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID |Q| OPCODE|C|T|T| Z | RCODE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QDCOUNT | ANCOUNT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NSCOUNT | ARCOUNT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QD | AN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NS | AR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. LLMNRQueryLLMNRQuery fields id
0qr
BitField(1 bit)0opcode
0c
BitField(1 bit)0tc
BitField(1 bit)0t
BitField(1 bit)0z
BitField(4 bits)0rcode
0qdcount
Noneancount
Nonenscount
Nonearcount
Noneqd
_DNSPacketListField[]an
_DNSPacketListField[]ns
_DNSPacketListField[]ar
_DNSPacketListField[]
- class scapy.layers.llmnr.LLMNRResponse(_pkt, /, *, id=0, qr=1, opcode=0, c=0, tc=0, t=0, z=0, rcode=0, qdcount=None, ancount=None, nscount=None, arcount=None, qd=[], an=[], ns=[], ar=[])[source]
Bases:
LLMNRQuery- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID |Q| OPCODE|C|T|T| Z | RCODE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QDCOUNT | ANCOUNT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NSCOUNT | ARCOUNT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QD | AN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NS | AR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. LLMNRResponseLLMNRResponse fields id
0qr
BitField(1 bit)1opcode
0c
BitField(1 bit)0tc
BitField(1 bit)0t
BitField(1 bit)0z
BitField(4 bits)0rcode
0qdcount
Noneancount
Nonenscount
Nonearcount
Noneqd
_DNSPacketListField[]an
_DNSPacketListField[]ns
_DNSPacketListField[]ar
_DNSPacketListField[]
- class scapy.layers.llmnr.LLMNR_am(self, joker=None, match=None, srvmatch=None, joker6=False, send_error=False, relay=False, from_ip=True, from_ip6=False, src_ip=None, src_ip6=None, ttl=10, jokerarpa=False)[source]
Bases:
DNS_amLLMNR answering machine.
This has the same arguments as DNS_am. See help(DNS_am)
Example:
>>> llmnrd(joker="192.168.0.2", iface="eth0") >>> llmnrd(match={"TEST": "192.168.0.2"})
- cls[source]
alias of
LLMNRQuery
- filter: str | None = 'udp port 5355'
- function_name = 'llmnrd'
- optam0: Dict[str, Any]
- optam1: Dict[str, Any]
- optam2: Dict[str, Any]
- optsend: Dict[str, Any]
- optsniff: Dict[str, Any]