首页 > 解决方案 > 如何更改实时数据包长度,然后在 scapy 中转发它们?

问题描述

我想使用 scapy 来操作网络实时数据包(更改特殊程序的数据包长度)然后将它们转发到 dst。我该怎么做?是否有比 scapy 更好的工具?

标签: pythonnetwork-programmingscapypacket-capturepacket-sniffers

解决方案


使用 scapy 很容易做到这一点,例如以下示例:

from scapy.all import *
def _handle(pkt):
    pkt[Ether].dst = None  # ask scapy to regenerate it
    pkt[IP].dst = “192.168.x.y”. # or any IP
    # packet edits
    # ...
    sendp(pkt)
sniff(prn=_handle). # on each packet received, execute _handle(pkt)

sendp您还可以在 arg 中或sniff使用iface=...arg指定接口


推荐阅读