निम्न कोड के आधार पर फ़िल्टर करने के लिए:कैसे ईथरनेट मैक पता
sniff(filter = "dst aa:bb:cc:dd:ee")
एक त्रुटि फेंकता है क्योंकि sniff
एक आईपी, नहीं एक मैक उम्मीद कर रही है।
तो मैक द्वारा फ़िल्टर कैसे किया जाना चाहिए?
निम्न कोड के आधार पर फ़िल्टर करने के लिए:कैसे ईथरनेट मैक पता
sniff(filter = "dst aa:bb:cc:dd:ee")
एक त्रुटि फेंकता है क्योंकि sniff
एक आईपी, नहीं एक मैक उम्मीद कर रही है।
तो मैक द्वारा फ़िल्टर कैसे किया जाना चाहिए?
sniff
के लिए lfilter
specyfing के बारे में क्या?
zzz = sniff(lfilter=lambda d: d.src == 'aa:bb:cc:dd:ee:ff')
dst
और src
सूंघा संदेश की विशेषताएँ हैं।
पहले मैंने एक उत्तर पोस्ट किया है जहां stop_filter
निर्दिष्ट किया गया था। मुझे लगता है कि यह आपके लिए काम नहीं करेगा, क्योंकि stop_filter
से मैक पते से मेल खाने वाले पहले पैकेट को प्राप्त करने के बाद स्कैपी बंद हो जाएगी। lfilter
नौकरी करना चाहिए। sendrecv.py
से :
lfilter: python function applied to each packet to determine
if further action may be done
ex: lfilter = lambda x: x.haslayer(Padding)
मैंने अपनी लिपि में और दुभाषिया में lfilter के साथ अपने उत्तर की कोशिश की। मैंने सही स्रोत मैक से पिंग किया और यह इसे स्नीफ नहीं लग रहा था। – bzupnick
एक और आईपी पता पिंग करने का प्रयास करें? – macfij
मेरी समस्या यह थी कि मेरे मैक में अपरकेस अक्षर थे और स्कापी लोअरकेस अक्षरों को बचाता है। खूबसूरती से काम करता है =) – bzupnick
filter
पैरामीटर बीपीएफ फिल्टर की जरूरत है। सही वाक्यविन्यास इसलिए filter="ether dst aa:bb:cc:dd:ee:ff"
है।
यह एक पाइथन फ़ंक्शन को lfilter
पैरामीटर के रूप में उपयोग करने से (तेज़) तेज है, जैसा कि मैकफिज द्वारा किसी अन्य उत्तर में सुझाया गया है (ठीक है) (साथ ही आपको मैक पते में ऊपरी/निचले-केस अक्षरों से निपटने की ज़रूरत नहीं है)।
क्या आप इंटरफ़ेस का उपयोग कर सकते हैं? –
क्या आप थोड़ा गहराई से समझा सकते हैं? – bzupnick