首页 > 解决方案 > 如何从 sr 函数中获取 scapy IP 地址列表结果到变量中

问题描述

我正在尝试使用 scapy 在一系列 IP 地址中进行 ICMP(主机处于活动状态扫描)。但是我想将 sr 函数的结果列表(仅答案)存储在一个变量中,以便我可以将它用于其他目的。但这似乎不起作用。 我试过 这个,但它在我的情况下不起作用,因为预期的结果是一个 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)

标签: pythonscapy

解决方案


ans_ips = [a[1].src for a in ans]

推荐阅读