2024-05-16 22:44:58 发布
网友
我不确定这是否可能,因为这可能在硬件中处理,但我需要发送一些错误的以太网帧。我希望能够创建runt、jabber、错位和坏的FCS错误。我在Python工作。
它可以在硬件中处理,但并不总是这样——即使是这样,您也可以关闭它;请参阅ethtool卸载参数。
关于完全控制您创建的框架——查看PF_PACKET(一种方法)或the tap driver(另一种方法)。
这是一篇关于using PF_PACKET to send hand-crafted frames from Python的文章。
尝试在python中使用scapy,有一些例子可以生成巨型帧,还有一个runt帧。http://www.dirk-loss.de/scapy-doc/usage.html
首先,禁用以太网卡的校验和:
sudo ethtool -K eth1 tx off
然后,从python发送损坏的帧:
#!/usr/bin/env python from socket import * # # Ethernet Frame: # [ # [ Destination address, 6 bytes ] # [ Source address, 6 bytes ] # [ Ethertype, 2 bytes ] # [ Payload, 40 to 1500 bytes ] # [ 32 bit CRC chcksum, 4 bytes ] # ] # s = socket(AF_PACKET, SOCK_RAW) s.bind(("eth1", 0)) src_addr = "\x01\x02\x03\x04\x05\x06" dst_addr = "\x01\x02\x03\x04\x05\x06" payload = ("["*30)+"PAYLOAD"+("]"*30) checksum = "\x00\x00\x00\x00" ethertype = "\x08\x01" s.send(dst_addr+src_addr+ethertype+payload+checksum)
见A similar question
它可以在硬件中处理,但并不总是这样——即使是这样,您也可以关闭它;请参阅ethtool卸载参数。
关于完全控制您创建的框架——查看PF_PACKET(一种方法)或the tap driver(另一种方法)。
这是一篇关于using PF_PACKET to send hand-crafted frames from Python的文章。
尝试在python中使用scapy,有一些例子可以生成巨型帧,还有一个runt帧。http://www.dirk-loss.de/scapy-doc/usage.html
首先,禁用以太网卡的校验和:
然后,从python发送损坏的帧:
见A similar question
相关问题 更多 >
编程相关推荐