scapy.layers.dhcp
DHCP (Dynamic Host Configuration Protocol) and BOOTP
- class scapy.layers.dhcp.BOOTP(*args: Any, **kargs: Any)[source]
Bases:
scapy.packet.Packet
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OP | HTYPE | HLEN | HOPS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | XID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SECS | FLAGS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CIADDR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | YIADDR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SIADDR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | GIADDR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CHADDR | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SNAME | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | FILE | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTIONS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BOOTP
BOOTP fields op
1
htype
1
hlen
6
hops
0
xid
0
secs
0
flags
<Flag 0 ()>
ciaddr
'0.0.0.0'
yiaddr
'0.0.0.0'
siaddr
'0.0.0.0'
giaddr
'0.0.0.0'
chaddr
b''
sname
b''
file
b''
options
b''
- class scapy.layers.dhcp.BOOTP_am(**kargs)[source]
Bases:
scapy.ansmachine.AnsweringMachine
- filter = 'udp and port 68 and port 67'
- function_name = 'bootpd'
- parse_options(pool=Net('192.168.1.128/25'), network='192.168.1.0/24', gw='192.168.1.1', domain='localnet', renewal_time=60, lease_time=1800)[source]
- static send_function(x: Union[List[scapy.packet.Packet], scapy.packet.Packet, scapy.base_classes.SetGen[scapy.packet.Packet], scapy.plist._PacketList[scapy.packet.Packet]], iface: Optional[Union[scapy.interfaces.NetworkInterface, str]] = None, iface_hint: Union[None, str] = None, socket: Optional[scapy.supersocket.SuperSocket] = None, **kargs: Any) Optional[scapy.plist.PacketList] [source]
Send packets at layer 2
- Parameters
x – the packets
inter – time (in s) between two packets (default 0)
loop – send packet indefinetly (default 0)
count – number of packets to send (default None=1)
verbose – verbose mode (default None=conf.verbose)
realtime – check that a packet was sent before sending the next one
return_packets – return the sent packets
socket – the socket to use (default is conf.L3socket(kargs))
iface – the interface to send the packets on
monitor – (not on linux) send in monitor mode
- Returns
None
- class scapy.layers.dhcp.DHCP(*args: Any, **kargs: Any)[source]
Bases:
scapy.packet.Packet
- aliastypes
- class scapy.layers.dhcp.DHCPOptionsField(name: str, default: Optional[scapy.fields.I], fmt: str = 'H', remain: int = 0)[source]
Bases:
scapy.fields.StrField
- islist = 1
- class scapy.layers.dhcp.DHCP_am(**kargs)[source]
Bases:
scapy.layers.dhcp.BOOTP_am
- function_name = 'dhcpd'
- class scapy.layers.dhcp.RandDHCPOptions(size=None, rndstr=None)[source]
Bases:
scapy.volatile.RandField