python - 如何使用 Scapy 在 DHCP header 中添加参数请求列表?

标签 python ethernet scapy

我尝试制作一个带有参数请求列表选项的 DHCP 数据包,并在该请求中添加三个参数。

这就是我所做的,但我在 Wireshark 上看到的数据包看起来格式错误:

dhcp_pkt = Ether(dst="ff:ff:ff:ff:ff:ff")/IP(src="0.0.0.0",dst="255.255.255.255")/UDP(sport=68,dport=67)/BOOTP(chaddr=MAC_SOURCE)/DHCP(options=[("message-type","request"),("param_req_list", "subnet_mask", "router", "domain"),"end"])

我还尝试将参数作为我想要包含在请求列表中的参数的代码列表传递,但数据包仍然格式错误。

最佳答案

(这个答案涉及发现数据包,而不是请求数据包,因为这就是我正在写的内容)

您可以像这样创建 DHCP 帧:

dhcp_options = [
    ("message-type", "discover"),
    ("param_req_list", [
         DHCPRevOptions["subnet_mask"][0], # by name
         DHCPRevOptions["router"][0],
         DHCPRevOptions["name_server"][0],
         15, # aka "domain name
    ]),
    "end"
]
dhcp = DHCP(options=dhcp_options)

制作完 etheripudpbootp 帧后:

packet = ether/ip/udp/bootp/dhcp

关于python - 如何使用 Scapy 在 DHCP header 中添加参数请求列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24158713/

相关文章:

python - 在列表中运行一组 Python 脚本

python - 如何在 sqlalchemy ORM 中进行批量更新

macos - 为什么在 Mac OS X 上 Wi-Fi 像以太网一样被称为 en0?

c - 如何通过 UDP 套接字设置以太网服务等级?

c - 以太网 Controller 中的硬件 Rx/Tx 队列是什么

macos - Mac 上的监控模式 - 使用 Scapy

python-3.x - Python3 - 在操作系统中安装 Scapy

python - Scapy SYN 在我们自己的 IP 地址上发送

python - 解析 YAML,即使在有序映射中也能获取行号

python - 指定默认参数的惯用方式,其存在/不存在很重要