Я пишу скрипт на Python, который создает пакеты UDP на уровне 2 с помощью Scapy.
Однако я постоянно получаю «TypeError» при включении опций / атрибутов UDP () в определение пакета.
Код:
Return_Data = sendp( Ether(dst="ff:ff:ff:ff:ff:ff", type=0x800) \
/ IP(version=4L, ihl=5L, tos=0x0, len=64, \
id=0, flags=0, frag=0L, ttl=64, proto=UDP, \
chksum = 30495, src="xxx.xxx.xx.xxx", dst="xxx.xxx.x.x") / \
UDP(sport=31123, dport=31123, chksum=0x6f21, len=30) / Raw(load=Payload) )
Traceback (последний последний вызов):
Файл "EthCfgRx_Test_3.py", строка 20, в
UDP (sport = 31123, dport = 31123, chksum = 0x6f21, len = 30) / Raw (нагрузка = полезная нагрузка))
Файл "/home/watouser/.local/lib/python2.7/site-packages/scapy/packet.py", строка 349, в div
cloneB = other.copy ()
Файл "/home/watouser/.local/lib/python2.7/site-packages/scapy/packet.py", строка 200, в копии
clone.fields = self.copy_fields_dict (self.fields)
Файл "/home/watouser/.local/lib/python2.7/site-packages/scapy/packet.py", строка 382, в copy_fields_dict
для fname, fval в шести.iteitems (полях)}
Файл "/home/watouser/.local/lib/python2.7/site-packages/scapy/packet.py", строка 382, в
для fname, fval в шести.iteitems (полях)}
Файл "/home/watouser/.local/lib/python2.7/site-packages/scapy/packet.py", строка 377, в copy_field_value
вернуть self.get_field (имя поля) .do_copy (значение)
Файл "/home/watouser/.local/lib/python2.7/site-packages/scapy/fields.py", строка 86, в do_copy
return x.copy ()
TypeError: необязательный метод copy () должен вызываться с экземпляром UDP в качестве первого аргумента (вместо этого ничего не получил)
Любой совет?
Заранее спасибо!