2016-07-14 71 views
-1

我想過濾接收(或發送)的數據包是網絡,我不想要它們的副本,我想過濾數據包並在必要時刪除該數據包。所以我想訪問該數據包在以太網層,我想過濾像ARP數據包也。在Linux中使用C++過濾以太網數據包Ubuntu

我想在Linux,Ubuntu和我使用C++,QT做到這一點。

任何人都可以幫助我一個圖書館或其他東西?或者一些東西排成一本書或是一個白皮書來做這件事。我之前搜索過NETFilter,但那不能幫助我。

感謝

+1

你想實現wireshark?你可以使用pcap庫..反正這是太寬泛的問題,它會被關閉 – nayana

+6

夥計們我想寫的操作系統,將有窗口管理器和權限控制,請提供庫和如何在c + + – nosbor

+0

@otopolsky爲什麼它會被關閉?沒有woteshark是隻顯示數據包的東西,我想在操作系統之前控制數據包,如果我想要的話,放下它們。 –

回答

0

Qt不實現報文的鏈路層捕獲功能。您可以使用libpcap在Linux上捕獲數據包。你的程序幾乎肯定需要root權限才能使用網絡接口。

+0

這是在以太網層? –

+0

@ArianB是的,以太網是tcpdump和OSI模型的鏈路層協議。 – Sergey

0

您需要爲linux編寫一個以太網網絡驅動程序。在套接字級別,您將附加一個過濾器,以便只接受符合過濾器規則的數據包並將其傳遞給套接字。 這link將是一個好的開始。