scapy.contrib.eddystone

scapy.contrib.eddystone-Google Eddystone蓝牙LE邻近信标.

可以在以下位置找到Eddystone规范: https//github.com/google/eddystone/blob/master/protocol-specification.md

这些信标用作其他系统的构建块:

class scapy.contrib.eddystone.EddystoneURLField(name, default, fmt='H', remain=0)

Bases: scapy.fields.StrField

any2i(pkt, x)
i2m(pkt, x)
m2i(pkt, x)
class scapy.contrib.eddystone.Eddystone_EID(*args, **kargs)

Bases: scapy.packet.Packet

一种Eddystone类型,用于传输加密的临时标识符.

此实现不支持解密此数据.

https://github.com/google/eddystone/tree/master/eddystone-eid

aliastypes
fields_desc
显示类似RFC的架构
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    TX POWER   |              EID              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. Eddystone_EID                        
Eddystone_EID字段

tx_power

SignedByteField

0

eid

StrFixedLenField

None

class scapy.contrib.eddystone.Eddystone_Frame(*args, **kargs)

Bases: scapy.packet.Packet, scapy.layers.bluetooth.LowEnergyBeaconHelper

所有Eddystone消息均基于其构建的基本Eddystone框架.

https://github.com/google/eddystone/blob/master/protocol-specification.md

aliastypes
build_eir()

建立EIR消息列表以包装此框架.

fields_desc
显示类似RFC的架构
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  TYPE |RESERVE|
+-+-+-+-+-+-+-+-+

                       Fig. Eddystone_Frame                       
Eddystone_Frame字段

type

BitField (4位)

None

reserved

BitField (4位)

0

payload_guess

可能的子层: Eddystone_EIDEddystone_TLMEddystone_UIDEddystone_URL

class scapy.contrib.eddystone.Eddystone_TLM(*args, **kargs)

Bases: scapy.packet.Packet

一种Eddystone类型,用于传输信标遥测信息.

https://github.com/google/eddystone/tree/master/eddystone-tlm

aliastypes
fields_desc
显示类似RFC的架构
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    VERSION    |
+-+-+-+-+-+-+-+-+

                        Fig. Eddystone_TLM                        
Eddystone_TLM字段

version

ByteEnumField

None

payload_guess

可能的子层: Eddystone_TLM_EncryptedEddystone_TLM_Unencrypted

class scapy.contrib.eddystone.Eddystone_TLM_Encrypted(*args, **kargs)

Bases: scapy.packet.Packet

Eddystone-TLM的子类型,用于以加密形式传输遥测.

此实现不支持解密此数据.

https://github.com/google/eddystone/blob/master/eddystone-tlm/tlm-encrypted.md

aliastypes
fields_desc
显示类似RFC的架构
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              ETLM             |              SALT             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              MIC              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. Eddystone_TLM_Encrypted                   
Eddystone_TLM_加密的字段

etlm

StrFixedLenField

None

salt

StrFixedLenField

None

mic

StrFixedLenField

None

class scapy.contrib.eddystone.Eddystone_TLM_Unencrypted(*args, **kargs)

Bases: scapy.packet.Packet

Eddystone-TLM的子类型,用于以未加密形式传输遥测.

https://github.com/google/eddystone/blob/master/eddystone-tlm/tlm-plain.md

aliastypes
fields_desc
显示类似RFC的架构
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            BATT MV            |          TEMPERATURE          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            ADV CNT                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            SEC CNT                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Fig. Eddystone_TLM_Unencrypted                  
Eddystone_TLM_未加密的字段

batt_mv

ShortField

0

temperature

FixedPointField (16位)

-32768

adv_cnt

IntField

None

sec_cnt

IntField

None

class scapy.contrib.eddystone.Eddystone_UID(*args, **kargs)

Bases: scapy.packet.Packet

用于传输唯一标识符的Eddystone类型.

https://github.com/google/eddystone/tree/master/eddystone-uid

aliastypes
fields_desc
显示类似RFC的架构
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    TX POWER   |           NAMESPACE           |    INSTANCE   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            RESERVED           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. Eddystone_UID                        
Eddystone_UID字段

tx_power

SignedByteField

0

namespace

StrFixedLenField

None

instance

StrFixedLenField

None

reserved

StrFixedLenField

None

class scapy.contrib.eddystone.Eddystone_URL(*args, **kargs)

Bases: scapy.packet.Packet

用于将URL传输到网页的Eddystone类型.

https://github.com/google/eddystone/tree/master/eddystone-url

aliastypes
fields_desc
显示类似RFC的架构
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    TX POWER   |   URL SCHEME  |              URL              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. Eddystone_URL                        
Eddystone_URL字段

tx_power

SignedByteField

0

url_scheme

ByteEnumField

0

url

EddystoneURLField

None

static from_url(url)

为给定的URL创建一个具有Eddystone_URL的Eddystone_Frame.

to_url()