//捕獲網路資料報的c++程式
//可以獲得資料報長度、通過乙太網型別確定上層協議、源乙太網位址和目的乙太網位址!
#include "pcap.h"
#include#pragma comment(lib,"wpcap.lib")
#pragma comment(lib,"packet.lib")
#pragma comment(lib,"ws2_32.lib")
/*以下是乙太網協議格式*/
struct ether_header
;struct ip_header
;void ip_protool_packet_callback(u_char *argument,const struct pcap_pkthdr* packet_header,const u_char* packet_content)
printf("檢驗和:%d\n",checksum);
}void ethernet_protocol_packet_callback(u_char *argument,const struct pcap_pkthdr* packet_header,const u_char* packet_content)
mac_string=ethernet_protocol->ether_shost;
printf("%02x:%02x:%02x:%02x:%02x:%02x\n",*mac_string,*(mac_string+1),*(mac_string+2),*(mac_string+3),*(mac_string+4),*(mac_string+5));
mac_string=ethernet_protocol->ether_dhost;
printf("%02x:%02x:%02x:%02x:%02x:%02x\n",*mac_string,*(mac_string+1),*(mac_string+2),*(mac_string+3),*(mac_string+4),*(mac_string+5));
if(ethernet_type==0x0800)//繼續分析ip協議
printf("----------------------------------------------\n");
packet_number++;
}int main()
winpcap中的資料結構:
pcap_t 乙個已開啟的捕捉例項的描述符。這個結構體對使用者來說是不透明的,它通過wpcap.dll提供的函式,維護了它的內容。
struct pcap_pkthdr
;pcap_t* pcap_open_live ( const char * device, /* 開啟的網路裝置名 */
int snaplen, /* 要捕捉的最大位元組數 */
int promisc, /* 是否為 */
int to_ms, /* 超時時間 */
char * ebuf /* 錯誤和警告資訊 */
) winpcap 中文技術文件:
網路抓包與分析
抓包命令 1.指定網絡卡 蒐集所有報文 儲存到指定位置 tcpdump i eth0 s 0 w home test.pcap 2.指定tcp udp協議 tcpdump tcp i eth0 s 0 w home test.pcap 3.指定源ip tcpdump i eth0 src host ...
網路協議抓包分析 (1)
配置位址 開啟電腦介面卡設定,修改所用介面卡的ipv4的ip位址,即 internet 協議版本4 按下圖所示修改。網路位址規劃表 源ip位址 預設閘道器位址 目的ip位址 網域名稱備註 192.168.50.123 192.168.50.1 43.248.191.10 www.3dmgame.co...
ip網路抓包分析(1)
獲取原先的網路配置,將ip位址的後8個位元組改為學號的後3位。連通性測試ping www.baidu.com能正常連線網路。源位址目的位址 網域名稱172.24.55.69 一 應用層 二 傳輸層 tcp協議tcp三次握手 第一次握手 客戶端傳送乙個tcp,標誌位為syn,序列號為0,代表客戶端請求...