我正在学习网络。我想通过ICMP协议传输文件,然后通过wireshark捕获网络流量来解码原始数据。但我不知道如何通过ICMP协议传输文件。所以我的问题是如何通过 ICMP 在主机之间传输文件。 非常感谢。
from scapy.all import *
pkt = IP(dst="1.2.3.4",src="5.6.7.8") / ICMP(type=8) / (b"This is a s3cr3t string") )
send( pkt )
要发送文件,您可以将其分成几个块,以便每个块都适合数据包,以 Base64 编码每个块,然后在接收端对其进行解码/重新组装。
TCP/IP层,您会发现ICMP是一个互联网层协议,其目的是:
互联网控制消息协议(ICMP)是互联网协议族中的一个支持协议。它被网络设备(如路由器)用来发送错误消息和操作信息。所以ICMP不是像HTTP或FTP等那样的数据传输协议。从技术上讲,在任何情况下都不可能使用ICMP作为数据传输协议,除非您更改ICMP的结构和所有编码,然后它将不再是ICMP。