我一直在使用Scapy并且一直在搞制作数据包。我遇到的一个问题是尝试在数据包中指定某些数据/选项。例如,我想创建一个带有选项60的DHCP数据包,但我不知道用于此目的的有效输入数据是什么。我知道数据包应该有一个DHCP.options
列表,我可以在列表中添加这样的选项,但是我怎么知道我实际可以使用哪种类型和数据范围?我也知道我可以在解释器中键入DHCPOptions
以查看它是“供应商类ID”,但我如何才能将其正确地添加到数据包中呢?
另一个例子:对于TCP时间戳选项,我发现我必须输入(‘Timestamp’, (int,int))
,换句话说,输入字符串Timestamp
的元组和两个整数的元组中的元组,在某种范围内,我不知道。
所以最终,我的问题是在哪里/如何找到如何在Scapy中将有效的输入数据添加到数据包中?某处有清单或文件吗?我已经搜索过,但即使在源代码中也找不到它,文档似乎没有任何帮助。非常感谢帮助!
示例代码:
p = Ether()/IP()/UDP()/BOOTP()/DHCP()
# ?:what goes in the list to correctly add any option?
p[DHCP].options = [(?,?)]
# Trying to add option 60 here, unsure how
p[DHCP].options.append( ('vendor_class_id', ?) )
我仅使用选项60作为示例,但我想知道如何添加任何有效选项。