從linux操作系統我試圖用C或python編寫我自己的數據使用情況監視器。我已經搜索了幾天,並進行了研究。目前我正在嘗試改編sniffex.c以滿足我的需求。我已經成功驗證了幾個FTP會話期間發送和接收的總字節數。如何計算udp數據包大小libpcap
在sniffex.c中計算tcp數據包大小。我的問題是你如何計算UDP數據包的大小?我已經搜索了這個主題,但還沒有找到任何東西。這個問題有意義嗎?
更新:
的功能,其中包大小計算如下:
got_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet)
{
...
int size_payload;
...
case IPPROTO_UDP:
printf(" Protocol: UDP\n");
size_payload = header->len;
...
}
我是否還需要增加4到size_payload
?
回調到這個功能看起來是這樣的:
/* now we can set our callback function */
pcap_loop(handle, num_packets, got_packet, NULL);
好像這條線「 size_payload = header-> len;'正是你所需要的。你有頭結構,所以你可以直接從這個結構中獲得數據包長度。 – fycth