如何将 sr 函数的 scapy IP 地址列表结果获取到变量中

How to get scapy IP address list result from sr function into a variable

我正在尝试使用 scapy 在一系列 IP 地址中执行 ICMP(主机处于活动状态扫描)。 但我想将 sr 函数的结果列表(仅答案)存储在一个变量中,以便我可以将它用于其他目的。但这似乎不起作用。 我试过this,但它在我的情况下不起作用,因为预期的结果是一个 IP 列表,我想存储并稍后显示所有这些。

如果我输入 scapy 并输入上面的命令,它工作正常!

ans,_ = sr(IP(dst='192.168.1.1-7')/ICMP(), timeout=10)
ans.summary( lambda s_r: s_r[1].sprintf("{IP: %IP.src% is alive}"))

给我的结果:

 192.168.1.1 is alive
 192.168.1.3 is alive
 192.168.1.5 is alive
 192.168.1.6 is alive

这是我尝试过的(在我的 pycharm 项目中)但它给出了错误 'tuple' object has no attribute 'getlayer'

ips = '192.168.1.1-9'
ans, _ = sr(IP(dst=ips) / ICMP(), timeout=10)
address = ans.getlayer(IP).src
print(address)
ans_ips = [a[1].src for a in ans]