2012-06-08 77 views
2

我試圖創建從不同的VLAN中嗅探DHCP提供的軟件,我的問題是由我收回的數據包不包含VLAN標記。我使用原始套接字,並試圖啓用混雜模式,但無濟於事。如何爲VLAN嗅探初始化原始套接字

問題是如何指示內核保持數據包中的所有數據完好無損?

當使用wireshark我可以看到答覆數據包的VLAN標頭設置好,但我的recv'ed數據已刪除所有的VLAN信息。

在此先感謝!

--Lauri

回答

0

如果我理解正確的Linux code,VLAN標籤從數據包的有效載荷早期剝離,並存儲在一個領域是無法通過原始套接字API訪問。相反,嘗試使用wireshark做的事情,即使用pcap API

+0

我無法使用libpcap,因此該選項不在窗口中。 – user1444314

+0

現在的問題是如何從給定的skb中提取vlan_tci信息,只有套接字才能得到,或者我需要以某種方式重新實現接收(比套接字的位級別更低)? – user1444314

+0

你可能想閱讀[這個問題和答案](http://stackoverflow.com/questions/10947433/linux-user-space-l2-control-protocols)。它討論了在Linux中將L2信息傳輸到用戶空間應用程序需要進行哪些更改。 – user1202136