libpcap的安装方法详解
一、 安装过程参照以下步骤(以下所安装的版本为旧版本蓝色标出,可以自行选择新版本):
1、打开网址:www.tcpdump.org/ 下载 libpcap-1.0.0.tar.gz (512.0KB) 软件包,通过命令 tar zxvflibpcap-1.0.0.tar.gz解压文件,并将其放入自定义的安装目录。
2、打开网址:github.com/com/westes/flex/releases/ 下载 flex-2.5.35.tar.gz (1.40MB) 软件包,通过 tar zxvfflex-2.5.35.tar.gz 解压文件,并将其放入上述自定义的安装目录中。
注:如果没有编译安装此文件,在编译安装libpcap时,就会出现 “configure: error: Your operating system's lex is insufficient to compile libpcap.”的错误提示。
3、打开网址:ftp.gnu.org/gnu/bison/ 下载bison-2.4.1.tar.gz (1.9MB) 软件包,通过 tar zxvfbison-2.4.1.tar.gz解压文件,并将其放入上述自定义的安装目录中。
注:如果没有编译安装此文件,在编译安装libpcap时,就会出现 "configure: WARNING: don't have both flex and bison; reverting to lex/yacc checking for capable lex... insufficient" 的错误提示。
4、打开网址:ftp.gnu.org/gnu/m4/ 下载m4-1.4.13.tar.gz (1.2MB)软件包,通过 tarzxvf m4-1.4.13.tar.gz 解压文件,并将其放入上述自定义的安装目录中。
注:如果没有编译安装此文件,在编译安装bison-2.4.1时,就会出现 “configure: error: GNU M4 1.4 is required”的错误提示。
5、而后依次进入目录m4-1.4.13,bison-2.4.1,flex-2.5.35,libpcap-1.0.0 并执行以下命令:
(sudo) ./configure
(sudo) make
(sudo) make install
可以成功编译,不过运行的时候却提示找不到libpcap.so.1,因为libpcap.so.1默认安装到了/usr/local/lib下,我们做一个符号链接到/usr/lib/下即可。(我在linux命令里面提到过ln的命令)
如果不创建链接会出现NO SUCH FILE OR DIRECTORY的错误
我们可以创建链接代码如下:
sudo ln -s /usr/local/lib/libpcap.so.1 /usr/lib/libpcap.so.1
接下来就开始编程吧!!
Can't find a curses library supporting mvchgat
sudo apt-get install libncurses5-dev
交叉编译iftop
1、下载iftop源码包iftop-0.17.tar.gz
2、解压
3、确保已经交叉编译好libpcap库,执行./configure --host=arm-linux
4、在当前目录下建立install目录
5、make
6、make install
完成后将./install/sbin/iftop文件拷贝到开发板上的/usr/sbin
除此之外还要拷贝到所需要的库文件:
/lib/libpcap.so.1 /lib/libpcap.so.1.6.2
/lib/libncurses.so.5 /lib/libncurses.so.5.6
前一列是链接文件,后一列是实际指向的文件。
运行iftop命令出错:Error opening terminal: vt102.
这是因为开发版上 面没有对应的终端信息。运行基于ncurses库的程序必须先设置终端信息环境变量 TERMINFO;否则会提示找不到终端信息。这个方法也简单,在开发板上建立目录 /usr/share/terminfo,然后将/usr/local/arm/4.2.2-eabi/usr/share/terminfo/v目录复制到此处 就可以了,里面包含了开发板的vt102终端信息,当然还有其它很多不同各类的终端信息, 如果你为了减小空间占用,可以只复制vt102相关的文件,然后在当前的shell环境中添加 环境变量。
# export TERMINFO=/usr/share/terminfo
运行iftop:
ftop界面说明 :
第一行:带宽显示
中间部分:外部连接列表,即记录了哪些ip正在和本机的网络连接
中间部分右边:实时参数分别是该访问ip连接到本机2秒,10秒和40秒的平均流量
=>代表发送数据,<= 代表接收数据
底部三行:表示发送,接收和全部的流量
底部三行第二列(cumm):为你运行iftop到目前流量
底部三行第三列(peak):为高峰值
底部三行第四列(rates):为平均值