【问题标题】:How to build ICMP packets using python?如何使用 python 构建 ICMP 数据包?
【发布时间】:2018-06-19 12:16:10
【问题描述】:
我需要将文件(FTP 客户端)转换为我的代码,以便使用以下协议之一的有效负载传输所需文件:
ICMP - 使用 ICMP 数据包发送文件或使用 DNS 数据包发送文件。
在上述每种方法中,我们需要从指定的协议构建数据包并以在每个数据包中我们可以以隐藏方式(这是在外国计算机中)向文件添加一点信息的方式发送它们,而我的计算机等待这些数据包,然后将它们收集到一个文件中。
这是作业的一部分,希望获得有关如何开始的帮助,
建议在 python 中使用 scapy。
【问题讨论】:
标签:
python
python-2.7
dns
network-programming
icmp
【解决方案1】:
您会发现dpkt 或scapy 很有用。安装后,您可以交互式地探索它们。尝试类似:
%% python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dpkt
>>> help(dpkt.icmp.ICMP)
或者试试ICMP example from Scapy:
#! /usr/bin/env python
import sys
from scapy.all import sr1,IP,ICMP
p=sr1(IP(dst=sys.argv[1])/ICMP())
if p:
p.show()
您会发现 DNS 类似,但它们支持的有效负载有不同的限制。无论哪种情况,您都必须进行一些有效负载操作才能发送部分文件。