大家好,我是启航。今天跟大家讲的是Python 用于发送接受网络数据包的模块-------scapy。
前言
众所周知,我们每天上网都会有很多数据包需要发送,然后处理在接受在发送,这样一个循环往复的过程,
这里就显示了很多数据包的发送接收数据。那么,什么是包呢?下面一起看看。
包(packet)是网络通信传输中的数据单位,一般称之为数据包,其主要由源地址,目标地址,净载数据组成。包括包头和包体,包头是固定长度,包体长度不变。简单了解下包的定义,下面我们来看看发包利器scapy的用法吧。(参考资料来源:百度百科-数据包)
一、常用命令
1、ls():显示所有支持的数据包对象,可带参数也可不带,参数可以是任意具体的包。
可以看出,它包含了全部的内容,如果我们想详细查看某个模块中的内容,比如说我想查看ARP ,tcp的话了,可以这样:
在这里要告诉大家的是,我们必须要注意大小写,ls(ARP)这样才可以得出正确结果,ls(arp)是错误的。
2、lsc():列出所有函数
满屏的英文,小编我头都是大的,不知道大家此时此刻是什么样的心情,哈哈哈哈。
3、hide_defaults():用来删除一些用户提供的那些和default value相同的项目
a=IP()
print(a.hide_defaults())
4.display():可以简单查看当前packet的各个参数的取值情况,
a=IP()
a.display()
5.更多命令
命令 作用
show_interfaces() 显示网卡信息
str(pkt) 组装数据包
hexdump(pkt) 十六进制转储
ls(pkt) 显示出字段值的列表
pkt.summary() 一行摘要
pkt.show() 针对数据包的展开视图
pkt.show2() 显示聚合的数据包(例如,计算好了的校验和)
pkt.sprintf() 用数据包字段填充格式字符串
pkt.decode_payload_as() 改变payload