第一支pcap程式
#include <stdio.h>
#include <pcap.h>
int main(int argc,char *argv[])
{
char *dev , errbuf[PCAP_ERRBUF_SIZE];
dev = pcap_lookupdev(errbuf);
if(dev == NULL)
{
fprintf(stderr,"Couldn't find default device : %s\n",errbuf);
return(2);
}
printf("Device : %s\n",dev);
return(0);
}
編譯
gcc -o main main.c -lpcap
執行
sudo ./main
結果:
第二支pcap程式
#include<stdio.h>
#include<pcap.h>
int main (int argc,char*argv[])
{
void printer()
{
printf("A packet is captured!\n");
return;
}
char errbuff[PCAP_ERRBUF_SIZE];
pcap_t *pd = pcap_open_live("eth1",68,0,1000,errbuff);
//定義封包抓取(裝置名稱,封包抓取最大位元數,設置網路卡混雜模式,錯誤訊息)
pcap_loop(pd,7,printer,NULL);
//(封包抓取類型,循環次數,抓取封包後調用函式,指標可為NULL)
pcap_close(pd);
return 0;
}
編譯
gcc -o second second.c -lpcap
執行
sudo ./second
結果: