歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Fedora下libpcap使用

Fedora下libpcap使用

日期:2017/2/28 16:29:11   编辑:Linux教程
Fedora一般都自帶libpcap了,但是缺少pcap.h,所以要安裝一下
yum install libpcap*
完成之後locate一下看看是不是在/usr/lib下
網上找的小程序:
//test.c
#include
#include
int main(int argc, char *argv[])
{
char *dev, errbuf[PCAP_ERRBUF_SIZE];
dev = pcap_lookupdev(errbuf);
if (dev ==NULL)
{
fprintf(stderr, "can't find default device: %s\n", errbuf);
return 2;
}
printf("device: %s\n", dev);
return 0;
}
編譯:gcc test.c -lpcap
沒報錯,不過運行就出事了:
./a.out: error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory
ldconfig一下,ldconfig: /usr/lib/libnet.so.1 is not a symbolic link
我猜是libpcap和libnet版本不對??不知道……我最恨軟鏈接這種事……之前編偽造包程序的時候,libnet庫這個鏈接那個鏈接的就搞死我了……
瞧瞧。。。
[root@localhost ~]# locate libnet.so.1
/root/libnet-1.1.4/src/.libs/libnet.so.1
/root/libnet-1.1.4/src/.libs/libnet.so.1.5.0
/usr/lib/libnet.so.1
/usr/lib/libnet.so.1.5.0
/usr/local/include/libnet.so.1.5.0
/usr/local/lib/libnet.so.1
/usr/local/lib/libnet.so.1.5.0
到/usr/local/lib下查看一下是怎麼鏈接的:
[root@localhost lib]# ll |grep libnet.so
lrwxrwxrwx 1 root root 15 2010-09-03 07:36 libnet.so -> libnet.so.1.5.0
lrwxrwxrwx 1 root root 15 2010-09-03 07:36 libnet.so.1 -> libnet.so.1.5.0
-rwxr-xr-x 1 root root 324919 2010-09-03 07:36 libnet.so.1.5.0
好了,到/usr/lib下照著做鏈接……
[root@localhost lib]# ln -s libnet.so.1.5.0 libnet.so.1
看看對不對哦……
[root@localhost lib]# ll |grep libnet.so
-rwxr-xr-x 1 root root 324919 2010-09-03 07:53 libnet.so
lrwxrwxrwx 1 root root 15 2010-09-12 22:26 libnet.so.1 -> libnet.so.1.5.0
-rwxr-xr-x 1 root root 324919 2010-09-03 07:53 libnet.so.1.5.0
[root@localhost lib]# ldconfig 沒錯了
返回test.c的目錄,祈禱一下,再編譯一下
運行:
[root@localhost ~]# ./a.out
device: eth0
內牛滿面啊……
安裝必須的軟件包libpcap0.8-dev,注意是dev包而不是libpcap0.8,因為我們開發需要必須的頭文件。
在編譯的時候,需要注意一些地方,指定編譯鏈接庫。
#gcc get_a_packet_code.c -o get_a_packet_code -lpcap
Copyright © Linux教程網 All Rights Reserved