【python】DHCP_Discover数据包构造

本文档展示了如何利用Python库Scapy来构造DHCP DISCOVER请求,并发送到网络中。通过设置随机的事务ID和MAC地址,然后监听网络以捕获DHCP OFFER响应。代码详细说明了在不同网络层(应用层、传输层、网络层和数据链路层)的数据包构造过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要构造的部分:
应用层:DHCP,BOOTP
传输层:UDP
网络层:IP
数据链路层:Ether

代码:

from scapy.all import *
from scapy.layers.dhcp import BOOTP, DHCP
from scapy.layers.inet import *
import binascii
from random import randint

xid_random = randint(1,900000000)     #随机产生事务ID
mac_random = str(RandMAC())    #随机产生MAC地址
clinet_mac_id = binascii.unhexlify(mac_random.replace(':',''))    #MAC添加分隔符
print(mac_random)
ether= Ether(src= mac_random, dst = "ff:ff:ff:ff:ff:ff")
ip = IP(src = "0.0.0.0",dst = "255.255.255.255")
udp = UDP(sport =68,dport = 67)
dootp= BOOTP(chaddr =clinet_mac_id , xid = xid_random)
dhcp = DHCP(options=[("message-type","discover"),"end"])
dhcp_discover = ether/ip/udp/dootp/dhcp
sendp(dhcp_discover , iface='以太网')  
print("\n\n\nSending DHCPDISCOVER on " + "以太网")

def detect_dhcp(pkt):   #显示捕获到的DHCP offer数据包
    if (DHCP in pkt):
        ls(pkt)
sniff(filter="src port 67",iface = "以太网",prn=detect_dhcp)

结果:
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值