准備用python的tcp套接字,在網上找了tcp的客戶端和服務器的例程,准備測試下效果,比較簡單,很快就能通信了。
心血來潮,想用wireshark抓取本地回路的測試包,結果發現怎么都抓不到127.0.0.1的tcp數據包,不管怎么看,都沒有127.0.0.1的數據包。嘔血弄了一早晨,發現如果是tcp客戶端向別的IP通信wireshark都能正常截獲,如果是本機則沒有一點動靜能截獲到。
不甘心,網上搜搜本地回路用wireshark抓包的說法,才知道,原來是WindowsTCP/IP下沒有本地回路的接口,所以不能用常用的windows抓包驅動獲取到,比如winpcap,而俺的wireshark是基於winpcap的,所以肯定抓不到數據包了。linux下wireshark應該能看到一個名為“loopback interface”的接口。
(Windows TCP/IP stack does not implement a network loopback interface, as found in other TCP/IP stack like lo* interfaces in BSD systems.Thus, it is not possible to sniff network traffic using the typical Windows packet capture driver, WinPcap.)
參考網址:
http://wiki.wireshark.org/CaptureSetup/Loopback
http://www.hsc.fr/ressources/articles/win_net_srv/missing_loopback.html
當然也不是說windows下就別想抓到本地回路的包了,肯定有別的方法,網上貌似說commview可以抓到本地回路的包。
還有一個綠色,小巧(17K)的開源軟件RawCap也可以抓到。(下載地址:http://www.netresec.com/?page=RawCap),將抓到的包保存為pcap后綴,用wireshark打開,就可以繼續分析了。
別的方法比較麻煩,要改IP,路由之類的,過於麻煩,感覺不可取。