在Python套接字中接收自定义Scapy数据包

杂乱无章

我正在尝试在python套接字中使用Scapy发送自定义数据包(带有自定义层)。

这是客户端的代码

#!/usr/bin/env python 

import socket
from scapy.all import *


TCP_PORT = 5000
BUFFER_SIZE = 1024

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('192.168.240.1', TCP_PORT))


class Reservation(Packet):
    name = "ReservationPacket"
    fields_desc=[ ByteField("id", 0),
         BitField("type",None, 0),
         X3BytesField("update", 0),
         ByteField("rssiap", 0)]

k = IP(dst="192.168.240.1")/Reservation()
k.show()
send(k)

print "Reservation Message Sent"

s.close()

数据包k似乎已成功创建并发送。

这是负责接收数据包的服务器:

#!/usr/bin/python

import socket
from scapy.all import *


class Reservation(Packet):
    name = "ReservationPacket"
    fields_desc=[ ByteField("id", 0),
        BitField("type",None, 0),
        X3BytesField("update", 0),
        ByteField("rssiap", 0)]


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(('192.168.240.1', 5000))
s.listen(1)

while True :

    conn, addr = s.accept()

    print 'Connection address:', addr

    print ''

    data = conn.recv(1024)
    data.show()
    conn.close

s.close()

这是我从服务器获得的输出:

Connection address: ('192.168.240.5', 58454)

Traceback (most recent call last):
File "server.py", line 36, in <module>
  data.show()
AttributeError: 'str' object has no attribute 'show'

如何接收数据包并对其进行解码以读取其自定义层?

拉彭

数据在这一行变成一个字符串:

data = conn.recv(1024)

检查文档https://docs.python.org/2/library/socket.html

socket.recv(bufsize [,flags])从套接字接收数据。返回值是代表接收到的数据的字符串。一次接收的最大数据量由bufsize指定。有关可选参数标志的含义,请参见Unix手册页recv(2)。它默认为零。

您想对data.show()做什么,您可以使用以下命令打印数据:

print data

也可以通过以下链接对字符串进行解码:Python-将sock.recv转换为字符串

stringdata = data.decode('utf-8')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Scapy和NetFilter队列接收自定义协议数据包

来自分类Dev

数据包套接字未收到自定义协议ID的数据

来自分类Dev

通过python中的原始套接字发送scapy数据包

来自分类Dev

在翻新回调中接收自定义参数

来自分类Dev

通过自定义管理菜单在db中添加和接收自定义数据

来自分类Dev

无法接收到原始套接字的数据包

来自分类Dev

在Golang中,如何接收套接字绑定到特定地址/端口的多播数据包?

来自分类Dev

TCP阻止套接字-在不同数据包中接收少量字节的可能性

来自分类Dev

TCP阻止套接字-在不同数据包中接收少量字节的可能性

来自分类Dev

使用python(scapy?)从网络接收到的丢弃数据包

来自分类Dev

如何使用AirDrop发送和接收自定义数据

来自分类Dev

Delphi:如何从PostMessage接收自定义Windows消息?

来自分类Dev

接收自定义通知iOS swift 2.0

来自分类Dev

Delphi:如何从PostMessage接收自定义Windows消息?

来自分类Dev

Python PyQt4发出和接收自定义信号

来自分类Dev

原始套接字中的TCP数据包-Centos 6.6

来自分类Dev

如何使用相同的 UDP 套接字来发送和接收数据包?我在这段代码中缺少什么?

来自分类Dev

需要从shortcuts.xml接收自定义意图以在活动中调用自定义方法

来自分类Dev

套接字:读取UDP数据包

来自分类Dev

套接字广播数据包

来自分类Dev

创建自定义UDP数据包

来自分类Dev

如何在C中创建自定义数据包?

来自分类Dev

C#中的自定义UDP数据包结构

来自分类Dev

无法在Python中接收UDP数据包

来自分类Dev

在Python的CrossbarServer中从Arduino接收UDP数据包

来自分类Dev

配置Scapy侦听特定的数据包,并在接收到数据包后发送特定的数据包

来自分类Dev

您可以在一个套接字接收调用中获得两个数据包以进行多播吗?

来自分类Dev

C中的原始套接字数据包接收器,输出奇怪

来自分类Dev

C中的原始套接字数据包接收器,输出奇怪

Related 相关文章

  1. 1

    使用Scapy和NetFilter队列接收自定义协议数据包

  2. 2

    数据包套接字未收到自定义协议ID的数据

  3. 3

    通过python中的原始套接字发送scapy数据包

  4. 4

    在翻新回调中接收自定义参数

  5. 5

    通过自定义管理菜单在db中添加和接收自定义数据

  6. 6

    无法接收到原始套接字的数据包

  7. 7

    在Golang中,如何接收套接字绑定到特定地址/端口的多播数据包?

  8. 8

    TCP阻止套接字-在不同数据包中接收少量字节的可能性

  9. 9

    TCP阻止套接字-在不同数据包中接收少量字节的可能性

  10. 10

    使用python(scapy?)从网络接收到的丢弃数据包

  11. 11

    如何使用AirDrop发送和接收自定义数据

  12. 12

    Delphi:如何从PostMessage接收自定义Windows消息?

  13. 13

    接收自定义通知iOS swift 2.0

  14. 14

    Delphi:如何从PostMessage接收自定义Windows消息?

  15. 15

    Python PyQt4发出和接收自定义信号

  16. 16

    原始套接字中的TCP数据包-Centos 6.6

  17. 17

    如何使用相同的 UDP 套接字来发送和接收数据包?我在这段代码中缺少什么?

  18. 18

    需要从shortcuts.xml接收自定义意图以在活动中调用自定义方法

  19. 19

    套接字:读取UDP数据包

  20. 20

    套接字广播数据包

  21. 21

    创建自定义UDP数据包

  22. 22

    如何在C中创建自定义数据包?

  23. 23

    C#中的自定义UDP数据包结构

  24. 24

    无法在Python中接收UDP数据包

  25. 25

    在Python的CrossbarServer中从Arduino接收UDP数据包

  26. 26

    配置Scapy侦听特定的数据包,并在接收到数据包后发送特定的数据包

  27. 27

    您可以在一个套接字接收调用中获得两个数据包以进行多播吗?

  28. 28

    C中的原始套接字数据包接收器,输出奇怪

  29. 29

    C中的原始套接字数据包接收器,输出奇怪

热门标签

归档