要使用原始套接字发送scapy数据包,必须先将数据包转换为原始字节。例如,使用scapy制作的数据包如下:p = IP(dst="192.168.1.254")/TCP(flags="S", sport=RandShort(),dport=80)

应使用bytes(p)转换为原始字节。

这会给你类似的东西:'E\x00\x00(\x00\x01\x00\x00@\x06\xf6w\xc0\xa8\x01\t\xc0\xa8\x01\xfe\x97%\x00P\x00\x00\x00\x00\x00\x00\x00\x00P\x02 \x00t\x15\x00\x00'

然后可以使用原始套接字发送它。因此,对于您的示例,您可以修改一些代码,例如:from scapy.all import *

import socket

try:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

p = IP(dst="192.168.1.254")/TCP(flags="S", sport=RandShort(),dport=80)/Raw("Hallo world!")

s.connect(("192.168.1.254",80))

s.send(bytes(p))

print "[+] Request Sent!"

except Exception, e:

raise e

这应该管用!

注意!!!

记住,当您使用套接字(模块)与另一台计算机通信时

套接字自动构造数据包(头等)并发送所需的内容

发送。但是当你用scapy构建一个包的时候,你从一开始就把它制作出来

您定义了它的内容及其头、层等,因此在您的示例中,当您发送数据包时

您将发送“all”作为内容负载,甚至包括数据包头(ip头、tcp头)。

您可以通过运行以下嗅探器进行测试:#!/usr/bin/env python

from scapy.all import *

def printer(packet):

if packet.haslayer(Raw):

print packet.getlayer(Raw).load

print "[+] Sniff started"

while True:

sniff(store=0, filter="host 192.168.1.254 and port 80", prn=printer, iface="your_interface_here")

好吧,当嗅探器运行时,试着运行我文章中的第一段代码(当我用原始层=tcp.payload更新数据包时),你会发现不仅如此

但整个数据包作为数据传输。所以你把邮件头发了两次。这就是为什么sockets有自己的send方法,而scapy有自己的方法。

python通信原理_用python通过原始套接字发送scapy包相关推荐

  1. 利用原始套接字的抓包原理

    利用原始套接字的抓包原理: 抓包层 发送接收ip数据包 [接收除了以太网帧头部后面的ip层数据] socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|I ...

  2. 【网络编程】---C++实现原始套接字捕获数据包

    C++实现原始套接字捕获数据包 引言 原始套接字与TCP套接字和UDP套接字的区别 原始套接字编程使用的场合 原始套接字的通信过程 (1)基于原始套接字的数据发送过程 (2)基于原始套接字的数据接收过 ...

  3. 原始套接字发送ARP数据包

    什么是ARP协议 ARP协议是Address Resolution Protocol(地址解析协议)的缩写.在局域网中,网络中实际传输的是数据帧,数据帧里面有目的主机的MAC地址.但这个目的MAC地址 ...

  4. 原始套接字发送IP数据报

    IP是TCP/IP协议族中的核心协议.所有TCP.UDP.ICMP和IGMP数据都通过IP数据报传输.IP提供了一种尽力而为.无连接的数据报交付服务. IPv4头部 图1 IPv4头部 图1显示了IP ...

  5. python 通信原理_通信原理(第1章:确定性信号分析)

    信号: 1.本课中信号s(t)默认是实函数,代表电压随时间的变化: 2.一些简单信号:正弦.矩形.sinc.直流.冲激: 3.瞬时功率.功率和能量: 4.功率是s(t)^2的平均高度.能量是s(t)^ ...

  6. python 冒泡排序 原理_用Python实现排序算法——冒泡排序

    正在学习Python,然后呢,也想复习一下算法,所以采取这样的方式,一举两得.后面会用python逐步完成常用算法,算是学习笔记了. 贴代码之前还是先描述算法原理.冒泡的原理(以下描述为降序排序)是: ...

  7. python切片原理_分析python切片原理和方法

    使用索引获取列表的元素(随机读取) 列表元素支持用索引访问,正向索引从0开始 colors=["red","blue","green"] c ...

  8. python yield原理_从python的yield说起

    前段时间在读trac 中wiki模块的源码的时候,发现了很多地方都使用了yiled这一关键词, 感觉是在需要返回某个值的地方通过yield来代替return, 不是很明白其用法,所以仔细研究下. 一个 ...

  9. python通信自动化测试_基于Python的无线通信设备自动化测试软件的研制

    基于Python的无线通信设备自动化测试软件的研制 中国电子科技集团公司第十研究所 冯启俊 [期刊名称]<电子世界> [年(卷),期]2019(000)015 [总页数]2 无线通信设备的 ...

最新文章

  1. 中大李文均团队在氮循环功能基因的生物地理学分布格局研究中取得进展
  2. C语言笔试题--从CSDN转发
  3. Servlet3.0注解配置访问路径和urlParttern配置
  4. Oracle数据库中表格的级联删除问题
  5. Oracle单个数据文件超过32G后需要扩容
  6. Android学习笔记(一)——控件布局常用属性
  7. mysql transaction 实践小问题
  8. mysq;多表查询 总结
  9. C89:论常用的字符串函数
  10. java 单元测试assert_java – 使用assertTrue与其他人进行单元测试
  11. 网页小工具(学习中国象棋)
  12. 重装驱动:Failed to initialize NVML: Driver/library version mismatch
  13. FeliCa简介____带命令协议说明
  14. 百度地图矢量瓦片在线下载
  15. 阻止YouTube视频在Chrome中自动播放
  16. macos可以升级到指定版本吗_从Mac os High Sierra 升级到 Mac os Majove指定系统版本
  17. 云开发电商小程序实战教程-篇首语
  18. 怎么把音乐从电脑传到苹果手机?电脑mp3导入苹果手机
  19. solr两种安装、ik分词器设置、DIH导入mysql数据
  20. KT1025A蓝牙芯片模块关于录音功能的一些常见问题_以及解答

热门文章

  1. python3 socketserver源码解析_解读python中SocketServer源码
  2. 山西专科学校计算机专业排名,河南单招计算机专业专科学校排名
  3. python高效开发实战配套源文件_分享12个python使用技巧,助你轻松掌握Python高效开发...
  4. android 拨打电话 发送短信 权限,Android开发实现拨打电话与发送信息的方法分析...
  5. 学习记录——背包问题基础公式解释回顾
  6. 3-5Tensor的属性
  7. 阿里为什么推崇java_为什么阿里巴巴 Java 开发手册推荐使用 LongAdder,而不是 volatile?...
  8. ext中的EXT.XTemplate()
  9. Java 算法 传球游戏
  10. 数据分析师要会mysql_数据分析人员需要掌握sql到什么程度?