2017-05-18 3 views
2

J'ai un problème lorsque j'essaie d'utiliser pyshark de Python pour lire des adresses IP. J'ai été capable d'imprimer l'adresse IP d'un paquet LLDP très bien, en utilisant packet.lldp.mgn_addr_ip4. Cependant, packet.cdp ... ne semble pas avoir d'équivalent, à part packet.cdp qui renvoie une séquence d'octets.Impossible d'imprimer l'adresse IP du paquet CDP, mais LLDP fonctionne correctement

J'ai essayé packet.cdp.nrgyz.ip_address et rien n'est imprimé. J'ai essayé tous les autres domaines de this link et rien ne reviendra.

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 

J'apprécierions vraiment toute sorte d'orientation puisque pas un seul des champs qui dit qu'il renvoie une adresse IPv4 imprimera.

Répondre

0

Je l'ai compris. Apparemment, vous ne pouvez pas utiliser cdp.nrgyz (DOT) ip_address, et devez plutôt utiliser cdp.nrgyz (UNDERSCORE) ip_address. Il devient donc cdp.nrgyz_ip_address, même si la documentation de Wireshark indique qu'il devrait être cdp.nrgyz.ip_address