a=LLDPDU() # 构造LLDP数据包 packet = Ether(dst="40:A6:B7:91:72:8C") / LLDPDUChassisID(id="111")/LLDPDUPortID(id="111")/LLDPDUTimeToLive()/LLDPDUEndOfLLDPDU() #LLDPDU() # 查看构造出的LLDP报文 packet.show() sendp(packet, iface='以太网 2', loop=1, inter=1, verbose=False)
时间: 2024-03-09 09:50:47 浏览: 411
python_lldp:python LLDP数据包嗅探器
这段代码使用 Scapy 构造了一个 LLDP 数据包并发送出去。具体的操作步骤如下:
1. 导入 Scapy 库:
```
from scapy.all import *
```
2. 构造 LLDP 数据包,设置目的 MAC 地址为 "40:A6:B7:91:72:8C",并设置 LLDP 的 Chassis ID、Port ID、Time To Live 和 End Of LLDPDU:
```
a = LLDPDU() # 构造LLDP数据包
packet = Ether(dst="40:A6:B7:91:72:8C") / LLDPDUChassisID(id="111") / LLDPDUPortID(id="111") / LLDPDUTimeToLive() / LLDPDUEndOfLLDPDU()
```
3. 查看构造出的 LLDP 报文:
```
packet.show()
```
4. 发送 LLDP 数据包,其中 iface 指定发送数据包的网卡接口,loop 和 inter 分别表示发送数据包的次数和发送数据包之间的时间间隔:
```
sendp(packet, iface='以太网 2', loop=1, inter=1, verbose=False)
```
需要注意的是,发送 LLDP 数据包需要在网络拓扑中存在 LLDP 支持,否则 LLDP 数据包会被忽略。另外,如果要接收 LLDP 数据包,可以使用 Scapy 的 sniff 函数进行抓包。
阅读全文