我遇到了一个问题,我正在尝试使用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地址将打印出来。
答案 0 :(得分:0)
我明白了。显然你不能使用cdp.nrgyz(DOT)ip_address,而是必须使用cdp.nrgyz(UNDERSCORE)ip_address。所以它变成cdp.nrgyz_ip_address,即使Wireshark文档说它应该是cdp.nrgyz.ip_address