吵吵   2011-06-09  阅读:4,176

要先开始我们的802.1x编程,我们必须要先得到libpcap开发库和头文件,因为我我们必须要使用libpcap来进行抓包和发包,当然这是指linux环境,win下是winpcap。
先到libpcap官方网站去下载libpcap开发包http://www.tcpdump.org/

通过官方提供的资料可以知道libpcap依赖的一些库和程序
To compile the libpcap library, your Unix distribution must have a C compiler, and the lex and bison text parsers. For Open Source Unix distributions such as Linux and FreeBSD, the gcc, flex, and bison programs provide these functions.
关于gcc我们就不再多说了,完成gcc开发环境百度一下吧。我们要装flex、bison。www.chaochaoblog.com

1.安装flex。
sudo apt-get install flex
2.安装bison
sudo apt-get install bison
3.编译libpcap,先进入我们下载到的libpcap文件夹中,然后:

./configure
make
make install

简单的例子测试一下libpcap:
建立一个test.c

#include
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 test test.c -lpcap

记得编译时要使用libpcap的参数-lpcap,否则会提示“pcap_lookupdev 未定义的引用”的错误。
如果用到了多线程还在后面加-lpthread
运行指令:sudo ./test
注意哦我们用到libpcap必须要root权限!

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

4条回应:“802.1x编程之libpcap开发环境”

  1. loikkwok说道:

    跟着你做的,发现”PCAP_ERRBUF_SIZE”未声明,后来查了一下,在第二行加了一句
    #include
    就可以了。

  2. loikkwok说道:

    “#include ”
    (之前留言发现””被省去了,特意加了个引号。)

  3. loikkwok说道:

    “#include pcap.h”
    发现加了那个小于号”<”和大于号”>”,里面的东西都不见了。

  4. guge0007说道:

    这个方法放到路由器中只能得到LAN口MAC地址,WAN口的呢?

发表评论

电子邮件地址不会被公开。 必填项已用*标注