libpcap 安装和测试
I 首先安装 libpcap
1. 下载并安装 GNU M4 , 为生成makefile使用
2. 下载并安装 flex $sudo apt-get install flex
3. 下载并安装 bison
4. 下载并安装libpcap。
1. Libpcap的官方网站是http://tcpdump.org/release,下载最新的libpcap
2. tar -xvf libpcap-1.3.0.tar.gz
3. cd libpcap-1.3.0
./configure
4. 如果遇到缺少flex问题: $sudo apt-get install flex
5. 通过后,进行make $make
6, 如果遇到:
yacc -d ./parse.y<br>make: yacc: Command not found<br>make: *** [parse.c] Error 127
安装 $sudo apt-get install -y byacc
之后继续 make
7. make 后安装: 需要root权限
$sudo make install
II 测试libpcap是否好用:
#include <stdio.h> #include <pcap.h> int main(int argc, char *argv[]) { char errbuf[PCAP_ERRBUF_SIZE]; pcap_if_t* devs; pcap_if_t* d; unsigned int i = 0; //获取全部的dev if (-1 == pcap_findalldevs(&devs, errbuf)) { fprintf(stderr, "Could not list device: %s\n", errbuf); } else { d = devs; while (d->next != NULL) { printf("%d:%s\n", i++, d->name); d = d->next; } } //释放所有获取的dev pcap_freealldevs(devs); return (0); }
编译命令:
gcc test.c -lpcap
一定要加上 -lpcap, 链接库,否则无法正确链接。还有,如果是ubuntu,运行./a.out时还需要管理员权限,你懂的。
如果报错:error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory
则创建一个软连接:到/usr/lib下找到libpcap.so.1.x.x文件,复制一个备份,重命名为libpcap.so.1,将libpcap.so.1后拷贝文件到/usr/lib目录下,就可以了。
ln -s /usr/lib/libpcapso.1.x.x /usr/lib/libpcap.so.1
sudo ./aout