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

时间:2017-05-18 21:27:11

标签: python networking cisco

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

我试过了packet.cdp.nrgyz.ip_address,没有打印出来。我也尝试了this link中的所有其他字段,但没有任何内容会返回。

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地址将打印出来。

1 个答案:

答案 0 :(得分:0)

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