Im essayant d'obtenir une liste de tous les champs de protocole pour un paquet. J'ai essayé all_field_infos, mais il retourne userdata et je ne pouvais pas figurer le metatable à utiliser pour le lire. Est-ce que wireshark transmet un arbre de protocole à un robinet? (nous acceptons (tvb, pinfo, tree) pour les dissecteurs donc j'ai pensé que ça pourrait) Y a-t-il une propriété de type Proto.fields qui retourne tous les champs pour un protocole particulier?Tous les champs liste pour les paquets dans Wireshark: Lua
Répondre
Je n'ai pas utilisé Wireshark moi-même, mais fouiller dans leur manuel d'utilisateur en ligne produit this chapter qui semble documenter une liste de méthodes et de champs d'un paquet. Il n'y a pas de métaméthode qui permette à un userdata
de prendre en charge pairs()
, donc la documentation est vraiment tout ce que vous obtenez.
Alternativement, vous pouvez essayer d'appeler getmetatable()
sur le userdata
et en énumérant son contenu. Bien sûr, il pourrait utiliser __index()
pour cacher les méthodes réelles ailleurs ...
Je pense qu'il y a eu aussi une discussion sur Wireshark sur le Lua-L mailing list. Ses archives pourraient être utiles.
En tant que station de faible priorité, Wireshark est open source, donc il doit être possible de trouver le code qui implémente l'interface sur le côté Lua des choses ...
Merci pour la réponse. . J'ai essayé getmetable et les paires sur le résultat, m'a donné la fonction addrs. . Je sais plutôt que ces fonctions accèdent actaully Mon problème se résume à ceci - une userdata a quelques userdata.somethings - j'ai besoin de comprendre tous les quelque chose avant que je puisse les énumérer tous, ou effectuer n'importe quelle sorte de manipulations –
Un 'userdata' est la manière de Lua de contenir un bloc arbitraire de données, ainsi qu'une métabalise décrivant ce qui peut être fait avec le côté Lua. Il n'y a aucune obligation que vous puissiez faire quelque chose de plus que de le renvoyer à quelque chose du côté C qui a la définition 'struct' disponible. – RBerteig