2012-10-26 5 views
16

Je cours tcpdump sur les routeurs DD-WRT afin de capturer des données de liaison montante à partir de téléphones mobiles. Je voudrais écouter seulement quelques adresses mac. Pour ce faire, j'ai essayé d'exécuter la commande en utilisant une syntaxe similaire à Wireshark:Comment filtrer les adresses MAC en utilisant tcpdump?

tcpdump -i prism0 ether src[0:3] 5c:95:ae -s0 -w | nc 192.168.1.147 31337

pour que je puisse écouter tous les appareils qui ont comme première adresse MAC 5c:95:ae. Le problème est que la syntaxe est fausse et je me demandais si quelqu'un d'entre vous connaissait la bonne syntaxe pour obtenir ce que je veux.

Répondre

10

Avec man pcap-filter Je trouve cette solution:

tcpdump "ether[6:2] == 0x5c95 and ether[8:1] == 0xae" 
+0

Salut! Merci beaucoup pour la réponse. J'ai trouvé aussi bien de cette façon. Le problème est que je dois spécifier le drapeau src après éther mais si je l'ajoute alors je reçois toujours une erreur de syntaxe. –

+0

Pourquoi avez-vous besoin de ce drapeau? – graphite

+2

Pourquoi avez-vous besoin de spécifier 'src' après' ether'? Le 'ether' dans' ether src XX: XX: XX: XX: XX: XX' signifie "ceci est une adresse Ethernet", donc pour regarder uniquement l'adresse source, vous devez spécifier "src", mais le 'ether' dans 'ether [6: 2]' dit "ceci fait partie de l'entête Ethernet", et les octets 6 et 7 de l'entête Ethernet sont les deux premiers octets de l'adresse source et l'octet 8 est le troisième octet de l'adresse source, donc les '6: 2' et' 8: 1' spécifient que vous testez l'adresse source. filtre de graphite est exactement ce dont vous avez besoin et que vous voulez. –

Questions connexes