我正在尝试使用Scapy(数据包处理工具)编写一个脚本,该脚本将使用以下代码更改数据包:
def sendCommand(self):
src = self.srcAdd.toPlainText()
dst = self.destAdd.toPlainText() #getting strings from textedits
pay = self.payload.toPlainText()
print(src + dst + pay) #testing line
command = IP(dst=dst, src=src)/ICMP()/pay #line giving error
我使用了额外的变量进行测试,例如“csrc”和“cpay”
所有标记为
#testing
的行都可以正常工作这是我遇到的错误
Traceback (most recent call last):
File "MainDriverScapy.py", line 30, in createCommand
command = IP(dst=dst,src=src)/ICMP()/pay
File "/usr/lib/python2.7/dist-packages/scapy/packet.py", line 271, in __div__
return other.__rdiv__(self)
AttributeError: 'unicode' object has no attribute '__rdiv__'
似乎没有在Scapy命令的给定字段中插入变量。
最佳答案
弄清楚了,结果发现toPlainText方法将文本留给scapy无法理解的异常编码,因此我使用str()方法将其转换为字符串。
c = str(self.srcAdd.toPlainText())
dst = str(self.destAdd.toPlainText()) #getting strings from textedits
pay = str(elf.payload.toPlainText())
关于python - 用Scapy编写脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41985118/