2011-08-31 45 views
0

我試圖偵聽將通過UDP發送的指定爲已知MAC地址的特定發現數據包。該MAC地址將不會與我接收的接口的MAC地址相同。如何接收具有與偵聽接口不同的已知目標MAC的數據包UDP

我試過Beej的UDP listener但它只接收正確的MAC數據包。

當我用tcpdump監聽時,我可以看到數據包正在將它傳送到設備。

它看起來像我可以在一個原始套接字(雖然還沒有得到那個工作),但會有一種方法來只過濾目標MAC我想要的?

任何人都可以給我任何指導嗎?

回答

3

您的接口通常不會收到未發送到自己地址的數據包。它只是忽略它們。

您需要在promiscuous mode中設置您的網絡接口並使用Linux提供的數據包捕獲接口。

看看libpcap,手冊頁是here

這與tcpdump使用的機制相同。它是一個爲內核中的數據包捕獲機制提供接口和過濾器的庫。

+0

在您提及的同一文檔中還有一小部分相關信息:http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html#indexId434909-212 – snap