python - Scapy - 持久的 RandIP

标签 python tcp scapy

我正在尝试使用 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/

相关文章:

python - 从列表元组中正确赋值

linux - 在没有 root 访问权限的情况下监控特定端口上的流量(计算传输的字节数)

c# - 如何使我的 NET.TCP WCF 服务处理安全和不安全的通信

python - Scapy异常: Bad condition in format string?

python - 如何转储http流量?

python - 运行 Scapy Sniff 函数时出错

python - 射频 : Convert List of Tuple to List of List

python - 如何循环张量对象直到满足条件

c - 当操作系统在线程结束后进行垃圾回收时,TCP/IP 连接是否会自动关闭?

python - 为什么 python 子进程输出与 shell 不同?