python - 带有自定义选项的 scapy dhcp 请求

标签 python scapy dhcp

如何使用 scapy 作为 dhcp 客户端来请求某些 DHCP 选项?客户端会请求他们需要的东西,dhcp 客户端应该做出相应的响应。但是,我需要测试是否从服务器发送了某些 DHCP 选项,这些选项是我的 PC 通常不会请求的。这些可能是选项 150、242 等。

scapy 可以支持任何 DHCP 选项吗?在下面的代码中,如果我想请求选项 242 或选项 150,我将如何调整?

ethernet = Ether(dst='ff:ff:ff:ff:ff:ff',src=src_mac_address,type=0x800)
ip = IP(src ='0.0.0.0',dst='255.255.255.255')
udp =UDP (sport=68,dport=67)
bootp = BOOTP(chaddr = hw, ciaddr = '0.0.0.0',xid =  0x01020304,flags= 1)
dhcp = DHCP(options=[("message-type","discover"),"end"])

packet = ethernet / ip / udp / bootp / dhcp

最佳答案

requested_option_1 = 1    # Subnet Mask
requested_option_2 = 6    # Domain Name Servers
requested_option_3 = 15   # Domain Name
requested_option_4 = 44   # NetBIOS (TCP/IP) Name Servers
requested_option_5 = 3    # Routers
requested_option_6 = 33   # Static Routes
requested_option_7 = 150  # TFTP Server address
requested_option_8 = 43   # Vendor Specific Information

bytes_requested_options = struct.pack("8B", requested_option_1,
                                            requested_option_2,
                                            requested_option_3,
                                            requested_option_4,
                                            requested_option_5,
                                            requested_option_6,
                                            requested_option_7,
                                            requested_option_8)
dhcp = DHCP(options=[('message-type', 'discover'),('param_req_list',bytes_requested_options),'end'])

关于python - 带有自定义选项的 scapy dhcp 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41557596/

相关文章:

c - 检测 IP 是静态的还是从 busybox 上的 DHCP 获得的

python - 传递对 python 函数的引用

python - 在 Flask 中建立持久化复杂对象的正确方法

python - 比较列表和文本文件

python - 使用 scapy 捕获数据包并重定向它们

python - 如何读取 scapy 的 DNS 响应来获取解析域的 IP 地址?

Python3 Scapy - 嗅探分段 IP 数据包

javascript - 有没有可以安全地解释混淆的 javascript 字符串的 python 库?

C++ 没有来自 popen 的输出

c# - 哪些 API 可用于发送 DHCP 发现、请求和确认?