无法打印 CDP 数据包 IP 地址,但 LLDP 工作正常

Cannot print CDP Packet IP Address, but LLDP works fine

我在尝试使用 Python 的 pyshark 读取 IP 地址时遇到问题。我能够使用 packet.lldp.mgn_addr_ip4 打印出 LLDP 数据包的 IP 地址。但是 packet.cdp... 似乎没有等价物,除了 packet.cdp return 是一个字节序列。

我试过packet.cdp.nrgyz.ip_address,但没有打印出来。我也尝试了 this link 中的所有其他字段,但 return.

什么都不会
for packet in cap:
try:
    if packet.cdp:
        print(packet.cdp.nrgyz.ip_address)
    elif packet.lldp:
        print(packet.lldp.mgn_addr_ip4)
except AttributeError as e:
    pass

我非常感谢任何一种指导,因为没有一个字段显示 return IPv4 地址会被打印出来。

我想通了。显然你不能使用 cdp.nrgyz(DOT)ip_address,而必须使用 cdp.nrgyz(UNDERSCORE)ip_address。所以它变成 cdp.nrgyz_ip_address,尽管 Wireshark 文档说它应该是 cdp.nrgyz.ip_address