我遇到了一个问题,我试图使用Python的pyshark来读取IP地址。我能够使用packet.lldp.mgn_addr_ip4打印LLDP数据包的IP地址。但是packet.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地址就会打印出来。
发布于 2017-05-23 15:31:35
我想通了。显然,您不能使用cdp.nrgyz(DOT)ip_address,而必须使用cdp.nrgyz(下划线)ip_address。所以它变成了cdp.nrgyz_ip_address,尽管Wireshark文档说它应该是cdp.nrgyz.ip_address
https://stackoverflow.com/questions/44058047
复制相似问题