我正在尝试使用 scapy 模拟两台主机之间的 TCP 通信。
我的问题是,我无法保存 scapy 为我生成的随机 IP 地址。
这段代码
src_IP = RandIP()
print(src_IP)
print(src_IP)
print(src_IP)
给我这样的输出
234.200.98.20
147.3.56.17
135.102.142.49
所以每次我访问 src_IP
它都有一个新值。
有没有办法从 scapy 中保存随机 IP?所以我可以在我的函数开始时生成 2 个 IP,并将它们用作我的 TCP 通信的源和目标。
我可以自己生成 IP,但我认为必须有更优雅的解决方案。
顺便说一句。没有数据包将被发送,它们将被写入 PCAP 文件。因此,我必须创造沟通的双方。
最佳答案
接受的答案是 hack;它是正确的(如“它工作并按要求执行”),但这不是在 Scapy 中执行此操作的正确方法。
您正在寻找的方法是._fix()
。它适用于任何可变值类型。
src_IP = RandIP()._fix()
如果您还需要一个随机源端口,您可以这样做:
src_port = RandShort()._fix()
关于python - Scapy - 持久的 RandIP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45509493/