資源簡介
使用winpcap進行ip流量包分析程序,winpcap大家懂的,流量分析大家也懂的,內含源碼和說明文檔。

代碼片段和文件信息
/*************************
定制控制臺應用程序入口點
**************************/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include?“IPNode.h“
#include?“IPNodeList.h“
#include?“FindActiveIP.h“
#include?“IPAddr.h“
#include?“IPMonitor.h“
#pragma?comment(lib“ws2_32.lib“)
#pragma?comment(lib?“wpcap“)
//main函數???????
int?main(int?argc?char*?argv[])
{
????
pcap_if_t?*?alldevs; //指向所有網絡設備的指針
pcap_if_t?*?d; //指向網卡的指針
int?i=0; //記錄網卡數量
pcap_t?*pAdaptHandle; //打開網卡的句柄
char?errbuf[PCAP_ERRBUF_SIZE];??//錯誤信息緩沖區
//檢測命令行參數正確性
if?(argc?!=?2)
{
cout<<“請輸入正確的命令行參數:?IPAnalyzer.exe?duration_time“< cout<<“其中duration_time為監控時間?單位為秒,可精確到毫秒“;
exit(1);
}
double?dwDuration?=?atof(argv[1]);??//將用戶輸入的字符串類型的時間轉換成double型數
//獲取本機網絡設備列表
if?(pcap_findalldevs(&alldevserrbuf)?==?-1)??????
????{
????????fprintf(stderr“獲取本地機器設備列表時發生錯誤...?%s\n“?errbuf);
????????exit(1);
????}
????
//輸出網絡適配器設備列表??
????for(d=?alldevs;?d?!=?NULL;?d=?d->next)???????????????????????
????{
????????printf(“%d.?%s\n“?++i?d->name);
????????if?(d->description)
????????????printf(“?(%s)\n“?d->description);
????????else
????????????printf(“?無法得到網卡描述?\n“);
????}
????if?(i?==?0)?//適配器數量為0,輸出錯誤信息
????{
????????printf(“\n網絡適配器沒有被發現,請確認已經安裝winpcap!\n“);
????????return?0;
????}
????
//適配器選擇
int?inum=0;
printf(“%s““請輸入要選擇的適配器序號:?“);
scanf(“%d“&inum);
????
//判斷適配器選擇合法性
if(inum?1?||?inum?>?i)
????{
??????printf(“%s““所選適配器不在列表中!\n“);
??????pcap_freealldevs(alldevs);????//?釋放設備列表?
??????return?-1;
????}
????
//找到選擇的適配器?
????for(d=alldevs?i=0;?i {
??d=d->next;
}
//?打開設備?
????if?((pAdaptHandle?=?pcap_open_live(d->name????//?設備名稱
???????????????????????????????????????60?????????//?ARP包最大長度是60,節省內存資源,不設為65536!????
???????????1??????????//?混雜模式
???????????????????????????????????????100????????//?讀取超時時間
???????????????????????????????????????errbuf??????//?錯誤信息緩沖池
??????????????????????????????????????))?==?NULL)
????{
???????fprintf(stderr“\nWinPcap不支持設備?%s,無法打開它!\n“?d->name);??????
???????pcap_freealldevs(alldevs);???//?釋放設備列表?
???????return?-1;
????}
?
//編譯并設置過濾器
char*?filter?=?“ip“;???????????//本程序選擇IP協議
bpf_program?fcode; ???//解析過濾串規則
unsigned?long?netmask?=?0;?????//子網掩碼
pcap_addr_t?*a?=?d->addresses;?//適配器地址
u_long?self_IP?=?((struct?sockaddr_in?*)a->addr)->sin_addr.S_un.S_addr; ??//獲得本機IP地址
cout< cout<<“???????活動主機IP列表:“< cout<<“???????<0>???“;
IpToStr(self_IP);??????????????//輸出本機IP
?
if(d->addresses?!=?NULL)????//獲得子網掩碼
???????netmask=((struct?sockaddr_in?*)(a->netmask))->sin_addr.S_un.S_addr;
????else ????????????????//?如果接口沒有地址,則假設為C類地址
??????netmask=0xffffff;?
??????
//?編譯過濾條件
if?(pcap_compile(pAdaptHandle?&fcode?filter?1?(unsigned?long)netmask)?0)
?{
cout<<“過濾條件
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????2237440??2009-11-16?23:59??程序源碼\IPMonitor\Debug\IPMonitor.bsc
?????文件?????557105??2009-11-16?23:59??程序源碼\IPMonitor\Debug\IPMonitor.exe
?????文件?????831912??2009-11-16?23:59??程序源碼\IPMonitor\Debug\IPMonitor.ilk
?????文件?????314649??2009-11-17?18:04??程序源碼\IPMonitor\Debug\IPMonitor.obj
?????文件????7016992??2009-11-17?18:04??程序源碼\IPMonitor\Debug\IPMonitor.pch
?????文件????1147904??2009-11-16?23:59??程序源碼\IPMonitor\Debug\IPMonitor.pdb
?????文件????1206252??2009-11-17?18:04??程序源碼\IPMonitor\Debug\IPMonitor.sbr
?????文件?????345088??2009-11-17?18:04??程序源碼\IPMonitor\Debug\vc60.idb
?????文件?????151552??2009-11-17?18:04??程序源碼\IPMonitor\Debug\vc60.pdb
?????文件???????8351??2009-11-16?23:18??程序源碼\IPMonitor\FindActiveIP.h
?????文件???????4065??2007-09-27?10:55??程序源碼\IPMonitor\Include\bittypes.h
?????文件???????5780??2006-01-22?11:02??程序源碼\IPMonitor\Include\ip6_misc.h
?????文件??????17973??2007-11-12?18:11??程序源碼\IPMonitor\Include\Packet32.h
?????文件???????2064??2007-09-21?19:10??程序源碼\IPMonitor\Include\pcap\bluetooth.h
?????文件??????29629??2008-04-06?11:10??程序源碼\IPMonitor\Include\pcap\bpf.h
?????文件???????3510??2006-10-04?11:09??程序源碼\IPMonitor\Include\pcap\namedb.h
?????文件??????13615??2008-05-21?15:42??程序源碼\IPMonitor\Include\pcap\pcap.h
?????文件???????5686??2006-10-05?03:23??程序源碼\IPMonitor\Include\pcap\sll.h
?????文件???????3015??2007-09-21?19:06??程序源碼\IPMonitor\Include\pcap\usb.h
?????文件???????2440??2007-04-01?14:43??程序源碼\IPMonitor\Include\pcap-bpf.h
?????文件???????2167??2006-10-04?11:13??程序源碼\IPMonitor\Include\pcap-namedb.h
?????文件???????2418??2007-09-27?10:59??程序源碼\IPMonitor\Include\pcap-stdinc.h
?????文件???????2365??2006-10-04?11:09??程序源碼\IPMonitor\Include\pcap.h
?????文件??????14945??2007-09-27?11:32??程序源碼\IPMonitor\Include\remote-ext.h
?????文件???????4033??2006-08-09?17:16??程序源碼\IPMonitor\Include\Win32-Extensions.h
?????文件???????1301??2009-11-16?18:55??程序源碼\IPMonitor\IPAddr.h
?????文件???????6132??2009-11-16?23:10??程序源碼\IPMonitor\IPMonitor.cpp
?????文件???????4674??2009-11-16?20:37??程序源碼\IPMonitor\IPMonitor.dsp
?????文件????????541??2009-11-15?22:01??程序源碼\IPMonitor\IPMonitor.dsw
?????文件????????924??2009-11-16?18:55??程序源碼\IPMonitor\IPMonitor.h
............此處省略24個文件信息
- 上一篇:Yelp數據集
- 下一篇:APEX輔助源碼.rar
評論
共有 條評論