2012-08-17 15 views
9

मैं स्कैपी का उपयोग कर रहा हूं और गंतव्य मैक पते के आधार पर फ़िल्टर करना चाहता हूं।स्कैपी बीपीएफ फ़िल्टर काम नहीं कर रहा

हालांकि, मुझे पैकेट प्रदर्शित हो रहे हैं जहां गंतव्य मैक पता फ़िल्टर में निर्दिष्ट पता नहीं है।

from scapy.all import * 

sniff(iface="eth1", filter="ether dst host 91:e0:f0:01:00:00", 
     count=3, prn=lambda x: x.show()) 

मैं Scapy 2.2.0

यहां मुद्दा यह है पर कोई भी विचार चल रहा हूँ:

यहाँ एक कोड SNIPPIT है?

+0

अपने कोड स्वरूपण पर विचार करें। –

+0

कोड स्वरूपण इस मुद्दे को स्पष्ट नहीं किया है। – user1607606

+0

मेरे सिस्टम पर कोड का प्रयास किया, स्कैपी के समान संस्करण। फ़िल्टर काम किया। फिल्टर के माध्यम से किस प्रकार के मैक पते मिल रहे हैं? – RyPeck

उत्तर

2

स्कैपी को कई अलग-अलग प्रणालियों के लिए कई निर्भरताओं की आवश्यकता होती है। यह संभव है कि आपके पास बीपीएफ फ़िल्टर के लिए काम करने की आवश्यक निर्भरता न हो।

http://www.secdev.org/projects/scapy/portability.html

1

यह scapy गलती है !!! ऐसा लगता है कि scapy बीपीएफ फ़िल्टर (filtersniff फ़ंक्शन का तर्क) लागू करने से पहले पैकेट प्राप्त करना प्रारंभ करता है। काम ठीक से करने में कुछ समय लगता है! स्क्रिप्ट के अंदर अपने छानने समारोह को परिभाषित करने के

  1. उपयोग lfilter: दो तरीकों इस से छुटकारा पाने के। यह व्यस्त लिंक पर कुशल नहीं है क्योंकि कर्नेल के बजाय फ़िल्टर आपकी स्क्रिप्ट में लागू होता है। इसे तेज करने के लिए pypy का उपयोग करने पर विचार करें।
  2. कुछ पहले पैकेट के लिए अपनी स्क्रिप्ट के अंदर गंतव्य मैक पता की जांच करें और फिर इसे और जांच न करें; यानी scapy के अस्थिर चरण को पार करने के लिए स्नीफिंग के शुरुआती समय में पैकेट की शुद्धता की जांच करें और फिर अवांछित पैकेट को फ़िल्टर करने के लिए scapy पर भरोसा करें।
+0

निश्चित रूप से, इसे अपग्रेड करना चीज़ को ठीक करना प्रतीत होता है – Cukic0d

1

स्थापित कर रहा tcpdump मेरे लिए समस्या हल - अब सूंघ पर फिल्टर काम करता है

1

मेरे मामले में,, 2.3.3dev को (GitHub संस्करण) उन्नयन तय यह

संबंधित मुद्दे