2014-03-29 82 views
0

嗯,我正在開發Java項目。爲了製作一個應用程序,它將捕獲我局域網中的所有數據包,並能夠看到HTTP流量。我目前使用Jnetpcap API,我成功列出了界面,並進行實時捕獲並提取HTTP包。我遇到的問題是我只捕獲自己機器的流量。我已經在谷歌上查到這個了。到目前爲止,我發現的唯一解決方案是啓用混雜模式,我使用ifconfig cmd,但不幸的是問題仍然存在。我不知道如何解決這個問題。任何解決方案.. ??如何捕獲局域網中的Http包

回答

0

您只能捕獲實際通過您正在監聽的盒子的流量。混雜模式只意味着,如果流量恰巧到達您的盒子但沒有發往它,它會讀取流量。但是,如果您正在使用網絡集線器,則只會陷入這種情況。在交換式網絡上,只有實際用於您計算機的流量纔會進入您的計算機。

您需要使用具有SPAN端口的交換機才能監控所有通過該交換機的流量,或者在系統上運行您的監控程序,以使您的所有網絡流量都可以通過(位於例如您的網絡)。

+0

現在我明白了爲什麼我只能捕獲自己的機器的流量。謝謝你的回答很多你已經明確表示了。還有一件事還剩下,是否有任何軟件解決方案來獲得我想要的,我搜索Google是迄今爲止唯一的解決方案,就是使用Arp欺騙,以便所有網絡流量都能通過我的機器,然後將數據包轉發到默認網關。但後來我發現,大多數操作系統都可以檢測到arp欺騙,這是真的嗎?你能否提供其他解決方案? –

0

我使用winpcap(不是Jnetpcap),但我認爲有些東西是constatnt。

無論您是否在操作系統中啓用混雜模式,您在打開旅遊網絡適配器時都必須通過混雜模式標誌。例如,在WinPcap的我們不喜歡下面的代碼:

pcap_open(d->name, 65536, PCAP_OPENFLAG_PROMISCUOUS /* promiscuous mode */ , 1000, NULL, errbuf) 

欲瞭解更多信息,請檢查official winpcap documentation

祝你好運

亞里阿里。