您能告诉我有关 ICMP 数据包的更多详细信息吗? 现在我正在使用一些代码构造:
import scapy.layers.inet
from scapy.all import *
def gettingDataFromICMPTraffic(pkt):
if pkt.haslayer(scapy.layers.inet.ICMP):
type_8 = pkt.getlayer(scapy.layers.inet.ICMP).type
if type_8 == 8:
print(pkt.getlayer(scapy.layers.inet.ICMP))
def main():
pkts = rdpcap('icmp_yes.pcap')
for pkt in pkts:
gettingDataFromICMPTraffic(pkt)
if __name__ == '__main__':
main()
我在表格中得到一些信息:
ICMP 192.168.34.163 > 192.168.34.118 echo-request 0 / Raw
ICMP 192.168.34.163 > 192.168.34.118 echo-request 0 / Raw
ICMP 192.168.34.163 > 192.168.34.136 echo-request 0 / Raw / Padding
ICMP 192.168.34.163 > 192.168.34.136 echo-request 0 / Raw / Padding
我想获得有关
Sequence Number
参数的更多信息,如 Wireshark
中所做的那样。
我查看了文档,但没有找到任何东西。
ICMP 字段中有
seq
属性:
def gettingDataFromICMPTraffic(pkt):
if pkt.haslayer(scapy.layers.inet.ICMP):
type_8 = pkt.getlayer(scapy.layers.inet.ICMP).type
if type_8 == 8:
icmp_layer = pkt.getlayer(scapy.layers.inet.ICMP)
print(icmp_layer, f'; seq number: {icmp_layer.seq}')
输出示例:
ICMP 192.168.158.139 > 174.137.42.77 echo-request 0 / Raw ; seq number: 8448
ICMP 192.168.158.139 > 174.137.42.77 echo-request 0 / Raw ; seq number: 8704
ICMP 192.168.158.139 > 174.137.42.77 echo-request 0 / Raw ; seq number: 8960
ICMP 192.168.158.139 > 174.137.42.77 echo-request 0 / Raw ; seq number: 9216