當使用者在區域網內傳遞資料時,處於同一網段的所有計算機的網絡卡都會收到這些資料,儘管它不是傳遞資料的目的地。利用這一特點,我們就可以截獲區域網中傳遞的資料。為了能夠獲取通過網絡卡上的資料,需要建立原始套接字。使用者可以將socket函式的第二個引數設定為sock_raw來建立原始套接字。例如:
m_socket=socket(af_inet,sock_raw,ipproto_ip);
由原始套接字獲得的資料是ip資料報,而不僅僅是乙個使用者資料。它還包含ip資料頭和相應協議的資料頭,最後才是使用者資料。為了獲得使用者資料,需要逐一去掉ip資料頭及各個協議的資料頭。
//建立套接字,開始監聽網路
dword inbuffer=1;
dword outbuffer[10];
dword revalue=0;
if(wsaioctl(m_sock,sio_rcval,&inbuffer,sizeof(inbuffer),&outbuffer,sizeof(outbuffer),&revalue,null)==socket_error)
else
m_pthread=afxbeginthread(threadfun.(void*)this);
}uint threadfun(lpvoid pfaram) //去除資料頭
memst(buffer,0,1000);
ret=recv(pdlg->m_sock,buffer,1000,0);
if(ret==socket_error)
else
//接收到的資料
case ipproto_udp:
case ipproto_tcp:
}//設定資料大小
str.format("%d",netlen);
pdlg->m_list.setitemtext(pdlg->m_list.getitemcount()-1,4,str);
str.empty();
//設定資料
if(pdata!=null)
str.empty();}}
return
0;}
pacp 網路資料報抓取
我們可以分5個步驟來描述使用libpcap編寫程式的步驟 我們首先要決定監聽的裝置介面,這個可以用乙個string來表示,也可以由pcap提供給我們。初始化pcap。我們要告訴pcap需要監聽的是哪乙個裝置。pcap對於不同的裝置,使用session來區分它們,乙個裝置就是一 個 session 我...
網路資料報抓取工具 如何抓取網路包?兩個方法告訴你
網路世界中的資料報互動我們肉眼是看不見的,它們就好像 了一樣,我們對著課本學習計算機網路的時候就會覺得非常的抽象,加大了學習的難度。還別說,我自己在大學的時候,也是如此。直到工作後,認識了兩大分析網路的利器 tcpdump 和 wireshark,這兩大利器把我們 看不見 的資料報,呈現在我們眼前,...
fiddler抓取手機資料報
一 fiddler設定 1 開啟fiddler,tools fiddler options 配置完後記得要重啟fiddler 選中https中的 decrpt https traffic fiddler就可以截獲https請求 選中connections中的 allow remote compute...