2014-03-29 133 views
4

我有我的無線接口監控模式,我能成功地嗅探網絡數據包,並使用Wireshark分析它們。我一直在嘗試實施類似pcapyimpacket。它看起來好像pcapy沒有捕獲Wireshark所在的相同數據包。我目前正在Mac OS X 10.9上運行2012 Macbook Pro,但注意到與TP-LINK TL-WN722N無線USB適配器在Ubuntu上的行爲相同。Python的數據包嗅探/數據包捕獲 - pcapy不捕獲數據包

下面是我寫的一個腳本示例,顯然不起作用。即使我在Wireshark中看到他們,我也不會收到pcapy的探測請求。

import pcapy 
import impacket 

DECODER = impacket.ImpactDecoder.RadioTapDecoder() 


def packet_handler(header, data): 
    radio_packet = DECODER.decode(data) 
    dot11 = radio_packet.child() 
    if dot11.get_subtype() == impacket.dot11.Dot11Types.DOT11_SUBTYPE_MANAGEMENT_PROBE_REQUEST: 
     management_base = dot11.child() 
     if management_base.__class__ == impacket.dot11.Dot11ManagementFrame: 
      print management_base.get_source_address(), management_base.get_destination_address() 


p = pcapy.open_live("your_interface_here", 2000, 0, 1000) 
p.loop(-1, packet_handler) 

在本例中,en1處於監視模式。

p = open_offline('path_to_file') 

我這不是正確設置pcapy:此利用Wireshark的生成的PCAP文件,只需改變open_liveopen_offline工作正常?

+0

我會考慮,如果你的使用Python 2.7 – TheCreator232

+0

我正在考慮使用Scapy的替代Scapy的的pcapy,雖然它解決了監控模式的問題,我不能夠捕捉到儘可能多的數據包的某些原因。不確定你對此有任何想法? –

+0

以及我已經使用scapy相當多,從來沒有在Mac OS上。你能記下你使用捕獲的嗅探命令嗎?你是什​​麼意思,它不捕獲儘可能多的數據包? – TheCreator232

回答

1

如果你捕捉到一些數據包,但不是全部,你在Wireshark的看到數據包,嘗試啓用混雜模式(應該可以捕捉到一切,甚至用錯誤校驗包):

1)設置混合模式爲pcapy

promiscuous = True 
p = pcapy.open_live("your_interface_here", 2000, promiscuous, 1000) 

2)爲您的界面設置混雜模式。不知道如何在Mac上執行它,在Linux上它是:

os.system('sudo ifconfig eth0 promisc') 

然後關閉並關閉您的界面。

與pcapy和銅纜以太網有同樣的問題。上面的技巧爲我解決了這個問題。