IOS 網路程式開發時資料監控
開發網路程式時,我們能夠直觀看到往來資料,對開發是十分便利的。這裡提供了幾種方法:
一、虛擬網卡1.在iPhone或iPad上建立一個RVI(remote virtual interface)虛擬網卡
用usb把裝置和mac相串連,開啟命令列工具,輸入命令:
rvictl -s abcdef01234563e91f1f2f8a8cb0841d2dafeebbc
這裡那一長串東西是裝置的UDID。使用iTunes可以查詢到這個東西。(預設顯示的是序號,點一下序號三個字,就會切換顯示)。點擊菜單 編輯-複製udid即可。
正常情況下,它會提示Starting device ********************* [SUCCEDDED] with interface rival 成功。
使用ifconfig -l命令測試一下:
2.使用tcpdump 命令,把資料包儲存到.pcap 檔案裡
在終端輸入命令:
sudo tcpdump -i rv0 -n -s 0 -w dumpFile.pcap tcp
參數說明 :
-i rv0 截獲虛擬網卡的資料-n 不使用dns-s 0 截取整個資料包,而不是僅首位元組-w dumpFile.pcp 輸出檔案,是libpcap 檔案格式tcp 只截取tcp資料包
現在在裝置上運行app,結束的時候,退出tcpdump.這個時候如果不再需要截獲資料,也可以把虛擬網卡移除掉。
rvictl -x abcdef01234563e91f1f2f8a8cb0841d2dafeebbc
但現在這個資料檔案還不容易使用,使用vim開啟會看到全是亂碼。
現在安裝一個tcpreplay工具
brew install tcpreplay
我在操作的時候,遇到了這個錯誤:
Error: Cannot write to /usr/local/Cellar
先執行:
sudo chown -R $USER /usr/local
安裝以後,執行命令:
tcprewrite --dlt=enet --enet-dmac=00:11:22:33:44:55 --enet-smac=66:77:88:99:AA:BB --infile=dumpFile.pcap --outfile=dumpFileFinal.pcap
3.安裝wireshark查看資料
到Wireshark下載安裝 。
Wireshark需要x11的支援。如果沒有安裝,啟動Wireshark時會引導安裝。也可以到這裡下載安裝:
http://xquartz.macosforge.org/landing/
啟動wireshark,這時可能會提示Choose Application。點擊Browser到/Application/Utilities/XQuartz.app。如果是安裝最新的Wireshark,也可能不需要指定,它會自動識別。
注意開始開啟可能比較慢,要耐心等待。
開啟轉換後的dumpFileFinal.pcap,可以看到資料內容。
二、http資料監測查看 HTTPArchive網址: http://www.softwareishard.com/blog/har-12-spec/
使用tcpdump擷取的pcap也可以轉為httpArchive查看,需要使用pcap2har的python指令碼工具。
這個以後再另外專門介紹。
三、使用Instruments network profiling
測試時使用虛擬機器是不能監測到資料的,需要串連物理機測試。
這是結果樣本:
在這裡不容易看到真實的資料,只能看到大致的通訊情況。