【发布时间】:2021-08-12 14:56:55
【问题描述】:
我需要模拟一些 udp 设备发送具有特定 ip 的 udp 数据包(例如 10.20.30.40)。
有可能吗?因为在所有 udp 服务器示例中,我看到 ip 是 127.0.0.1。
我更喜欢用 python 来做,但也欢迎其他方式。
【问题讨论】:
我需要模拟一些 udp 设备发送具有特定 ip 的 udp 数据包(例如 10.20.30.40)。
有可能吗?因为在所有 udp 服务器示例中,我看到 ip 是 127.0.0.1。
我更喜欢用 python 来做,但也欢迎其他方式。
【问题讨论】:
使用 Python 可以做到这一点的一种方法是使用 scapy。示例:
import scapy.all
packet = scapy.all.Ether() / scapy.all.IP(src='10.20.30.40') / scapy.all.UDP()
packet.show2()
show2() 方法将显示数据包是如何设置的,其中包括源 IP:
然后您可以使用例如scapy.all.sendp(packet) 发送数据包。对于初学者,您可以发送数据包并在目标计算机上使用wireshark 来查看它是否按预期到达那里。
请注意在野外伪造源 IP,这可能会给您带来麻烦。
【讨论】: