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



我遇到了一个问题,我试图使用Python的pyshark来读取IP地址。我能够使用packet.lldp.mgn_addr_ip4很好地打印出LLDP数据包的IP地址。然而数据包.cdp...除了返回字节序列的 packet.cdp 之外,似乎没有等效项。

我试过packet.cdp.nrgyz.ip_address,什么都没有打印出来。我也尝试了此链接中的所有其他字段,但不会返回任何内容。

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

我真的很感激任何类型的指导,因为没有一个字段说它返回IPv4地址会打印出来。

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

最新更新