一、进入scapy交互界面

在终端下输入:scapy ,进入交互界面:

二、查看scapy已经实现的网络协议

ls()         列出scapy中已实现的网络协议
ls(协议类型)     查看某个协议头部字段格式
lsc()        列出scapy中可以使用的命令或函数,比如嗅探时,我们经常会用到sniff()函数
IP().show()    显示包的IP信息
IP().display() 显示包的模板 dpkg = sniff(filter="tcp",count=4)
dpkg[2].show()   显示包抓取到的tkpk的第3个数据包的的详细内容
dpkg[2].summary()    查看捕获到数据包的信息摘要 wrpcap("dpkgsniff.pcap",dpkg)     将嗅探到的packet内容写到pcap文件
dpkg_read = rdpcap("dpkgsniff.pcap")  读取pcap文件

三、构造数据包

#构造一个ip数据包
dpkg = IP()
#修改数据包的值
dpkg.ttl = 24

#构造一个ICMP数据包
dpkg = ICMP()
#构造一个TCP数据包
dpkg = TCP()

通过“/”来表示网络中各个层的组合

dpkg=Ether()/IP(dst="www.baidu.com")/TCP()/"GET /index.html HTTP/1.0 \n\n"
dpkg.show()
hexdump(dpkg)

sprintf()输出某一层某个参数的取值,如果不存在就输出”??”,具体的format格式是:%[[fmt][r],][layer[:nb].]field%

%[[fmt][r],][layer[:nb].]field%

layer: 协议层的名字,如Ether、IP、Dot11、TCP等。

filed: 需要显示的参数。

nb: 当有两个协议层有相同的参数名时,nb用于到达你想要的协议层。

r:  一个标志。当使用r标志时,意味着显示的是参数的原始值。

例如,TCP标志中使用人类可阅读的字符串’SA’表示SYN和ACK标志,而其原始值是18.

例子:pkt.sprintf("Etherent source: %Ether.src%   IP src: %IP.src%")

或者:pkt.sprintf('%Raw.load%')   #其中Raw为具体的协议层

显示具体的网络层的信息:

dpkg["IP"].show()  或者dpkg[IP].show()  也可以
dpkg["TCP"].show() 
dpkg["Raw"].show()
#或者等价于
dpkg.getlayer(ip).show()
dpkg.getlayer(TCP).show()
dpkg.getlayer(Raw).show()

获取某个协议的具体字段值:

dpkg["Raw"].load
dpkg.getlayer(TCP).window

scapy构造数据包的更多相关文章

  1. python数据包之利器scapy用法!

    scapy介绍:  在python中可以通过scapy这个库轻松实现构造数据包.发送数据包.分析数据包,为网络编程之利器! scapy安装: pip install scapy   ======> ...

  2. netfilter的钩子——数据包在内核态得捕获、修改和转发

    转发:http://blog.csdn.net/stonesharp/article/details/27091391 数据包在内核态得捕获.修改和转发(基于 netfilter)    忙活了好几天 ...

  3. ARP数据包伪造

      一台网络中的计算机,其传递到网络中的数据包的内容是完全由其软硬件逻辑决定的,软件可以操控硬件,硬件亦是一种特殊的软件,所以,接收者只根据数据包的内容,绝不可能判定此数据包的真正来源,一切都是可以伪 ...

  4. scapy构造打印ARP数据包

    ARP格式: 用于以太网的ARP请求/应答分组格式 各字段含义: 帧类型:表示数据部分用什么协议封装(0800表示IP,0806表示ARP,8035表示RARP). 硬件类型:表示硬件地址的类型(其中 ...

  5. 强大的数据包处理程序scapy

    实验目的 利用scapy工具构造arp.icmp数据包,发送到目标主机,根据应答包推测出目标系统存活情况 实验原理 Scapy是Python写的一个功能强大的交互式数据包处理程序,可用来发送.嗅探.解 ...

  6. 用Golang自己构造ICMP数据包

    ICMP是用来对网络状况进行反馈的协议,可以用来侦测网络状态或检测网路错误. 限于当前Golang在网络编程方面的代码稀缺,资料甚少,所以分享一个用Golang来构造ICMP数据包并发送ping程序的 ...

  7. scapy基础-网络数据包结构

    网络层次模型,数据包的组成是学习scapy的基础,下文主要关注模型中各个层次的用途,ethernet II和ip包数据结构.    1.五层模型简介 名称 作用 包含协议 应用层 面向程序对程序的传输 ...

  8. scapy - 基于python的数据包操作库

    简介 地址:https://github.com/secdev/scapy scapy是一个基于python的交互式数据包操作程序和库. 它能够伪造或者解码多种协议的数据包,通过使用pcap文件对他们 ...

  9. 004.UDP--拼接UDP数据包,构造ip头和udp头通信(使用原始套接字)

    一.大致流程: 建立一个client端,一个server端,自己构建IP头和UDP头,写入数据(hello,world!)后通过原始套接字(SOCK_RAW)将包发出去. server端收到数据后,打 ...

随机推荐

  1. AntDeploy发布前端项目到IIS(脱离vs单独使用)

    AntDeploy AntDeploy是一款开源的一键发布部署工具,目的是代替重复性的发布动作,提高部署效率 1.一键部署iis 2.一键部署windows服务 3.一键部署到Docker 4.支持增 ...

  2. Python连载28-logging设置&logger解析

    一.logging模块讲解 1.函数:logging.basicConfig() 参数讲解: (1)level代表高于或者等于这个值时,那么我们才会记录这条日志 (2)filename代表日志会写在这 ...

  3. vulnhub之SP:Harrison靶机

    下载地址:‘https://www.vulnhub.com/entry/sp-harrison,302/’ 环境:靶机放在virtualbox上运行,网卡模式 攻击机:kali Linux运行在VMw ...

  4. 如何同时在Isilon的所有网卡上抓取网络包?

    命令行如下: cd /ifs/data/Isilon_Support/ mkdir $(date +%m%d%Y) isi_for_array 'for i in `ifconfig | grep - ...

  5. 『count 区间dp』

    count Description 既然是萌萌哒 visit_world 的比赛,那必然会有一道计数题啦! 考虑一个N个节点的二叉树,它的节点被标上了1-N的编号. 并且,编号为i的节点在二叉树的前序 ...

  6. http响应总结:常见http响应错误总结

    工作中经常会被同事问这个http请求为什么调不通,我虽然能解释清楚错误是什么,但是没有总结过,想到刚开始时,也是看了别人的文章才会的,所以总结一下,贡献一下自己的经验. http 404 响应 404 ...

  7. [转] JS中arr.forEach()如何跳出循环

    我们都知道for循环里要跳出整个循环是使用break,但在数组中用forEach循环如要退出整个循环呢?使用break会报错,使用return也不能跳出循环. 使用break将会报错: var arr ...

  8. 2019-11-29-VisualStudio-断点调试详解

    原文:2019-11-29-VisualStudio-断点调试详解 title author date CreateTime categories VisualStudio 断点调试详解 lindex ...

  9. LinQ实现DataTable不定行转列 行列转换,有图

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="LinqDemo2.aspx.c ...

  10. Python 绘图与可视化 matplotlib 动态条形图 bar

    bar的参考链接:https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.bar.html 第一种办法 一种方法是每次都重新画,包括清除f ...