-2
我試圖編寫一個程序來嗅探輸出ICMP & TCP請求數據包由python2.7套接字 但是,我只知道如何嗅探端口上的傳入數據包。如何使用python套接字來嗅探ICMP和TCP請求
該程序可以執行以通過超級用戶在Llnux上嗅探任何傳出的ICMP & TCP數據包。 我該怎麼辦?
我試圖編寫一個程序來嗅探輸出ICMP & TCP請求數據包由python2.7套接字 但是,我只知道如何嗅探端口上的傳入數據包。如何使用python套接字來嗅探ICMP和TCP請求
該程序可以執行以通過超級用戶在Llnux上嗅探任何傳出的ICMP & TCP數據包。 我該怎麼辦?
(從項目頁例)
>>> import dpkt, pcap
>>> pc = pcap.pcap()
>>> pc.setfilter('icmp')
>>> for ts, pkt in pc:
... print `dpkt.ethernet.Ethernet(pkt)`
...
Ethernet(src='\x00\x03G\xb2M\xe4', dst='\x00\x03G\x06h\x18', data=IP(src='\n\x00\x01\x1c', dst='\n\x00\x01\x10', sum=39799, len=60, p=1, ttl=128, id=35102, data=ICMP(sum=24667, type=8, data=Echo(id=512, seq=60160, data='abcdefghijklmnopqrstuvwabcdefghi'))))
Ethernet(src='\x00\x03G\x06h\x18', dst='\x00\x03G\xb2M\xe4', data=IP(src='\n\x00\x01\x10', dst='\n\x00\x01\x1c', sum=43697, len=60, p=1, ttl=255, id=64227, data=ICMP(sum=26715, data=Echo(id=512, seq=60160, data='abcdefghijklmnopqrstuvwabcdefghi'))))
^CTraceback (most recent call last):
File '<stdin>', line 1, in ?
File 'pcap.pyx', line 298, in pcap.pcap.__next__
KeyboardInterrupt
>>>
>>> pc.stats()
(4851, 0, 0)
你嘗試過什麼?你堅持什麼部分?你想使用'libpcap'還是顯式原始套接字或其他選擇? – abarnert
我是python的初學者。我參考了一些套接字示例來練習網絡編程。示例導入套接字,創建套接字對象,設置套接字和綁定端口以偵聽傳入數據包。 但是這個程序只是能夠嗅探套接字綁定的端口。所以,我混淆瞭如何嗅探任何傳出的數據包。 –
那麼,你需要了解原始套接字(也可能是混雜模式)。閱讀手冊頁或找到教程。玩Wireshark並閱讀它的文檔。也許用簡單的方法編寫一些基本的腳本來與原始套接字一起玩。那麼你可能會想要爲你的真正的程序使用帶有各種Python綁定的'libpcap'。 – abarnert