當前位置:首頁 » 凈水方式 » pcap包過濾

pcap包過濾

發布時間: 2021-03-19 01:57:56

『壹』 通過Wireshark抓包生成的PCAP文件,如何使用C#對這些包聯合Wireshark的過濾器進行解析

只想看到你設定了過濾條件的包就通過過濾介面設置就可以了,-也可以逐個打開並過濾這些包,並單獨存為一個PCAP文件,再用文件「合並」功能把它們放到一個文件裡面,這樣也很方便。

『貳』 libpcap 怎麼攔截數據包

誰說這個東西能攔截了?

等你收到數據的時候,數據報已經發出去了

『叄』 winpcap 能不能只捕獲網卡收到的數據包,而不捕獲網卡自己發送的數據包啊

可以..設置filter為的目標主機為自己就可以了。或者忽略掉自己發出去的數據包

『肆』 用winpcap編寫程序將數據包存儲到堆文件中後,如果再從堆文件讀取數據包時如何過濾其中的數據包

去看看winmp的源碼。

『伍』 使用winpcap抓包 過濾時寫arp能正常抓包,寫ip and tcp時就抓不到包時為什麼呀謝謝幫助啊!

直接寫一個 ip 就可以了
因為tcp包最後也經過ip報頭的封裝

『陸』 WinPcap能不能阻斷數據包

確實不能阻斷數據包,他是用來抓包的。
WinPcap產生的目的,就是為應用程序提供這種訪問方式; WinPcap提供了以下功能 :

捕獲原始數據包,無論它是發往某台機器的,還是在其他設備(共享媒介)上進行交換的
在數據包發送給某應用程序前,根據用戶指定的規則過濾數據包
將原始數據包通過網路發送出去
收集並統計網路流量信息

所以你只能用WINPCAP進行收發數據包,對你接收到的數據包進行過濾,或者統計你收到的數據包流量。所以你不能阻斷數據包的傳輸,而且他確實是個提取分析用。所以那個人說的很對。就算你篩選了你要收到的數據包,但是那也只是你所編輯的程序只提取你需要的數據包,實際上你相應的網卡上仍然收到了所有的數據包。你可以用WIRESHARK 軟體看到。winpcap抓包所能實現的功能基本,都在WIRESHARK上面體現了。都是winpcap還能發送數據包。

當然,如果你是網路高手,你可以根據不同傳輸協議,搞些MAC或IP欺騙,攔截一些不屬於你的數據包,但是這個就不是很容易辦到了。

你上面問道如何來丟棄數據包。。是丟棄你要發的數據包?還是丟棄你接收的數據包?
如果是丟棄接收的數據包的話,那就是篩選了過濾了,要用到 pcap_compile() 和 pcap_setfilter() 函數了。
如果是丟棄你要發送的數據包,數據包發送出去後就不收你控制了,你無法丟棄。如果你要編程,你可以進我的網路空間觀摩下。

『柒』 如何用winpcap捕獲DNS數據包

你試試下面這個,但是我也不太了解DNS數據包之類的...
(這個程序需要wpcap.lib和ws2_32.lib(winsock2)支持)
#define HAVE_REMOTE
#include "pcap.h"
/* 4位元組的IP地址 */
typedef struct ip_address{
u_char byte1;
u_char byte2;
u_char byte3;
u_char byte4;
}ip_address;
/* IPv4 首部 */
typedef struct ip_header{
u_char ver_ihl; // 版本 (4 bits) + 首部長度 (4 bits)
u_char tos; // 服務類型(Type of service)
u_short tlen; // 總長(Total length)
u_short identification; // 標識(Identification)
u_short flags_fo; // 標志位(Flags) (3 bits) + 段偏移量(Fragment offset) (13 bits)
u_char ttl; // 存活時間(Time to live)
u_char proto; // 協議(Protocol)
u_short crc; // 首部校驗和(Header checksum)
ip_address saddr; // 源地址(Source address)
ip_address daddr; // 目的地址(Destination address)
u_int op_pad; // 選項與填充(Option + Padding)
}ip_header;
/* UDP 首部*/
typedef struct udp_header{
u_short sport; // 源埠(Source port)
u_short dport; // 目的埠(Destination port)
u_short len; // UDP數據包長度(Datagram length)
u_short crc; // 校驗和(Checksum)
}udp_header;
/* 回調函數原型 */
void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data);

main()
{
int i=0;
int k;
pcap_t *adhandle;
char errbuf[PCAP_ERRBUF_SIZE];
u_int netmask;
u_int net ;
char packet_filter[] = "ip and udp";
struct bpf_program fcode;
char *dev;

dev=pcap_lookupdev(errbuf);//獲得網路介面名稱
pcap_lookupnet(dev,&net,&netmask,errbuf);//獲得網路號和掩碼號
printf("netmask=%d,net=%d ",netmask,net);

/* 打開適配器 */
adhandle= pcap_open_live(dev, // 監聽的適配器名稱
65536, // 65535保證能捕獲到不同數據鏈路層上的每個數據包的全部內容
PCAP_OPENFLAG_PROMISCUOUS, // 混雜模式
1000, // 讀取超時時間
// 遠程機器驗證
errbuf ) ; // 錯誤緩沖池

//編譯過濾器
if (k=pcap_compile(adhandle, &fcode, packet_filter, 1, netmask) <0 )
{
//netmask參數指定本地網路的網路掩碼。
fprintf(stderr,"\nUnable to compile the packet filter. Check the syntax.\n");
return -1;
}
printf("過濾器激活:%d \n",k);

//設置過濾器
if (pcap_setfilter(adhandle, &fcode)<0)
{
fprintf(stderr,"\nError setting the filter.\n");
return -1;
}

/* 開始捕捉 */
pcap_loop(adhandle,-1, packet_handler, NULL);

return 0;
}
/* 回調函數,當收到每一個數據包時會被libpcap所調用 */
void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data)
{
struct tm *ltime;//保存時間的結構體
char timestr[35];//太小就無法保存ltime的時間數據了
time_t local_tv_sec;///* 時間按總值 */
ip_header *ih;
udp_header *uh;
u_int ip_len;
u_short sport,dport;

/* 將時間戳轉換成可識別的格式 */
local_tv_sec = header->ts.tv_sec;//得到時間值
ltime=localtime(&local_tv_sec);//時間存儲格式轉換
strftime( timestr, sizeof timestr, "%H時%M分%S秒", ltime);//輸出時間並調整輸出格式
/* 列印數據包的時間戳和長度 */
printf("時間:%s 長度:%d\n ",timestr, header->len);

/* 獲得IP數據包頭部的位置 */
ih = (ip_header *) (pkt_data + 14); //乙太網頭部長度
/* 獲得UDP首部的位置 */
ip_len = (ih->ver_ihl & 0xf) * 4;
uh = (udp_header *) ((u_char*)ih + ip_len);
/* 將網路位元組序列轉換成主機位元組序列 */
sport = ntohs( uh->sport );
dport = ntohs( uh->dport );
/* 列印IP地址和UDP埠 */
printf("源IP:%d.%d.%d.%d\n主機源埠%d\n網路源埠%d\n目標IP: %d.%d.%d.%d\n主機目標埠%d\n網路目標埠%d\n\n",
ih->saddr.byte1,
ih->saddr.byte2,
ih->saddr.byte3,
ih->saddr.byte4,
sport,
uh->sport,
ih->daddr.byte1,
ih->daddr.byte2,
ih->daddr.byte3,
ih->daddr.byte4,
dport,
uh->dport );
}

『捌』 用winpcap的 pcap_compile過濾時, 如何只抓取 udp 和 tcp 包

那個過濾器無法過濾到tcp或者udp的包,你只能從報文中做類型判斷。對著wireshark做,來看看報文,你就知道啦。

『玖』 libpcp我想抓包但是我只想抓特定埠的tcp包,過濾那要怎麼寫啊

我是一個電腦盲,希望對你有所幫助 http://www.pudn.com/downloads41/sourcecode/internet/detail143614.html

『拾』 採用winpcap過濾從MAC地址A到MAC地址B的乙太網數據包的過濾語句怎麼寫

熱點內容
丁度巴拉斯情人電影推薦 發布:2024-08-19 09:13:07 瀏覽:886
類似深水的露點電影 發布:2024-08-19 09:10:12 瀏覽:80
《消失的眼角膜》2電影 發布:2024-08-19 08:34:43 瀏覽:878
私人影院什麼電影好看 發布:2024-08-19 08:33:32 瀏覽:593
干 B 發布:2024-08-19 08:30:21 瀏覽:910
夜晚看片網站 發布:2024-08-19 08:20:59 瀏覽:440
台灣男同電影《越界》 發布:2024-08-19 08:04:35 瀏覽:290
看電影選座位追女孩 發布:2024-08-19 07:54:42 瀏覽:975
日本a級愛情 發布:2024-08-19 07:30:38 瀏覽:832
生活中的瑪麗類似電影 發布:2024-08-19 07:26:46 瀏覽:239