嗨我需要帮助尝试访问scapy返回的元组中的元素。代码如下。
ans,unans=sr(IP(dst="www.google.com",ttl=5)/ICMP(),verbose=0)
ans.summary(lambda (s,r): r.sprintf("%IP.src%") )
如果我输入Scapy并手动输入这两个命令,它将返回一个IP地址。但是我从Python脚本中运行它并需要将该IP地址存储为变量。这可能是一个愚蠢的问题,我只是在学习Scapy,但我如何使用scapy将此IP地址存储为变量?我想要实现类似下面的东西。
#!/usr/bin/python
from scapy.all import *
ans,unans=sr(IP(dst="www.google.com",ttl=5)/ICMP(),verbose=0)
SourceIP = ans.summary(lambda (s,r): r.sprintf("%IP.src%") )
答案 0 :(得分:3)
如果您需要图层的值,请使用getlayer方法。所以只需改变一下:
ans = sr1(IP(dst="www.google.com",ttl=5)/ICMP(),verbose=0)
address = ans.getlayer(IP).src
如果存在返回true或false的图层,还有另一种方法。这是一个例子。
if ans.haslayer(IP):
print "Packet has the layer IP"