Python scapy 中的变量 (sendp)
Python variables in scapy (sendp)
我正在尝试生成任意无线信标帧。我正在从文件中获取基于字符串的 SSID 值以放入 scapy sendp 语句中。现在我可以将 SSID 字符串放入 sendp,但我还需要动态获取字符串长度 (len=
),以便将其放入数据包详细信息中。没有此长度的数据包格式不正确。
这里出现错误 "struct.error: cannot convert argument to integer"
代码如下所示:
with open ('ssid.txt') as f:
for line in f:
sendp(RadioTap()/Dot11(addr1="ff:ff:ff:ff:ff:ff",addr2=RandMAC(),addr3=RandMAC())/Dot11Beacon(cap="ESS")/Dot11Elt(ID="SSID", len='%d' % len(line.strip()),info='%d' % (line))/Dot11Elt(ID="Rates",info='\x82\x84\x0b\x16')/Dot11Elt(ID="DSset",info="\x03")/Dot11Elt(ID="TIM",info="\x00\x01\x00\x00"),iface="mon0")
我猜你的问题出在这部分:
Dot11Elt(ID="SSID", len='%d' % len(line.strip()),info='%d' % (line))
如果 len
参数应该是一个整数,这可能会导致您看到的错误,因为您实际上传递的是一个字符串。尝试删除第一个 '%d' %
,即将上面的内容替换为:
Dot11Elt(ID="SSID", len=len(line.strip()), info='%d' % line)
我正在尝试生成任意无线信标帧。我正在从文件中获取基于字符串的 SSID 值以放入 scapy sendp 语句中。现在我可以将 SSID 字符串放入 sendp,但我还需要动态获取字符串长度 (len=
),以便将其放入数据包详细信息中。没有此长度的数据包格式不正确。
这里出现错误 "struct.error: cannot convert argument to integer"
代码如下所示:
with open ('ssid.txt') as f:
for line in f:
sendp(RadioTap()/Dot11(addr1="ff:ff:ff:ff:ff:ff",addr2=RandMAC(),addr3=RandMAC())/Dot11Beacon(cap="ESS")/Dot11Elt(ID="SSID", len='%d' % len(line.strip()),info='%d' % (line))/Dot11Elt(ID="Rates",info='\x82\x84\x0b\x16')/Dot11Elt(ID="DSset",info="\x03")/Dot11Elt(ID="TIM",info="\x00\x01\x00\x00"),iface="mon0")
我猜你的问题出在这部分:
Dot11Elt(ID="SSID", len='%d' % len(line.strip()),info='%d' % (line))
如果 len
参数应该是一个整数,这可能会导致您看到的错误,因为您实际上传递的是一个字符串。尝试删除第一个 '%d' %
,即将上面的内容替换为:
Dot11Elt(ID="SSID", len=len(line.strip()), info='%d' % line)