handle_arp_adress方法中疑问。

来源:3-7 通过scapy模块实现ARP通信协议

江民川

2020-07-24 14:45:11

这个方法里的未知元素太多了,首先,请问老师,问题一,这些网络知识的名词目前需要细知吗?缩写产生的专业名词太多了实在不好记。

问题二,其次srp(Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst=ip_address), timeout=2)这句的语法,除了死记还有什么用于理解的剖析吗?层级细分下来看还有Ether方法和ARP方法。

问题三,包括之前课里也有出现过,我还是没懂ff:ff:ff:ff:ff:ff是代表什么,怎么用的。

问题四,rcv.sprintf(r"%Ether.src% & %ARP.psrc%")的语法剖析

问题五,ans, unas, snd, rc分别是什么?Ether.src和ARP.psrc是什么,ARP.psrc的值是不是就等于ip_address?

问题六、这里最终也就只有一个输出,为什么要用for循环?

写回答

1回答

时间,

2020-07-24

同学,你好。

1、不需要详细知的,同学知道表达的意思即可

2、srp(Ether()/ARP(),timeout):同学可以一层层的去理解,返回两个值,需要用两个变量来接收

srp,让arp数据包工作在数据链路层上,发数据帧

Ether()表示是在以太网中运用,参数dst为目的mac地址,值为"ff:ff:ff:ff:ff:ff"

发送的协议为ARP协议,参数pdst为目的ip地址

timeout为超时时间

3、ff:ff:ff:ff:ff:ff表示mac地址的格式

4、5、6、ans,unans 变量表示我们使用srp( )方法构造数据包进行当前网段的IP地址和Mac地址扫描的返回值,具体表示针对当前数据包而返回的有应答的数据包和无应答的数据包。

ans中的snd,rcv分别表示网关地址和IP地址,也就是应答数据包里面的网关地址和IP地址,因为涉及到底层的数据包表示,所以必须使用如下图所示的方式进行打印:

http://img.mukewang.com/climg/5f1a9359095ae58211650105.jpg

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

0

0 学习 · 1672 问题

查看课程