我是Python新手,在Scapy中使用icmpping扫描时遇到了lambda函数的用法。我读了一些教程,但是我正在努力使我的头脑围绕着这个概念来正确地使用我的代码。在
我试图弄清楚lambda参数是如何引用Scapy给出的输出的;主要是“s”和“r”的功能,以及它们如何使用“%直接从IP字段中提取数据”IP.src%' ? 在
def icmp_ping(target_ip):
"Function for a classic ICMP Ping sweep."
ans,unans=sr(IP(dst=target_ip)/ICMP(), timeout=3)
ans.summary(lambda (s,r): r.sprintf("%IP.src% is alive") )
ans.summary(lambda (s,r): r.sprintf("%IP.ttl% is the TTL value") )
print(ans)
其输出:
^{pr2}$希望这个问题有意义!在
ans具有包含发送和接收数据包的元组。Lambda拿走了这个元组。您正在访问接收包的IP标头并写入源地址。在python3中,你必须写下
在python中,3个参数以元组的形式出现,您必须通过它的索引到达接收包
相关问题 更多 >
编程相关推荐