一、进入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

最新文章

  1. 小明的密码-初级DP解法
  2. 关于js判断鼠标移入元素的方向--解释
  3. JavaScript判断浏览器类型及版本
  4. Web字体库下载及转换工具
  5. Tortoise-SVN 出现“unable to connect to a repository at url no element found”解决办法
  6. 数组有没有 length()这个方法? String 有没有 length()这 个方法?
  7. html5实现拖拽文件上传
  8. Kafka集群的搭建
  9. Python爬虫入门教程 34-100 掘金网全站用户爬虫 scrapy
  10. jtable时间编辑器
  11. Error-MVC: “/”应用程序中的服务器错误。
  12. Lodop导出图片,导出单页内容的图片
  13. 关于 HTTP
  14. Typechecking With PropTypes
  15. 跟我学Spring Boot(二)Hello World
  16. Nodejs+Express构建网站
  17. 使用开源Breeze工具部署Kubernetes 1.12.1高可用集群
  18. cdoj844-程序设计竞赛 (线段树的区间最大连续和)【线段树】
  19. Scrum Meeting 6 -2014.11.12
  20. java编写binder服务实例

热门文章

  1. 第02组 Alpha冲刺(5/6)
  2. [BZOJ1852] [MexicoOI06]最长不下降序列
  3. kubernetes实战(九):k8s集群动态存储管理GlusterFS及使用Heketi扩容GlusterFS集群
  4. 如何在同一行里执行多个linux命令?
  5. Java 微信支付分对接记录 (先享后付)
  6. IScroll在某些win10版本下的奇怪问题
  7. Luogu P3879 【[TJOI2010]阅读理解】
  8. 单点登录(sso)入门
  9. Intellij Idea 自动更新资源和类
  10. selenium登录爬取知乎出现:请求异常请升级客户端后重试的问题(用Python中的selenium接管chrome)