如何使用 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/