libpcap源码
① ubuntu下没有没有pcap.h头文件,怎么办
今天在ubuntu下进行安装wireshark,费了很多时间,过程中出了很多错误,但最终安装成功了,这里写下自己的安装步骤和方法,供大家参考。
安装编译工具:
$sudo apt-get install build-essential
为了成功编译Wireshark,您需要安装GTK+的开发文件和GLib库(libraries)。
$sudo apt-get install libgtk2.0-dev libglib2.0-dev
安装Checkinstall以便管理您系统中直接由源代码编译安装的软件。
$sudo apt-get install checkinstall
wireshark源码 (页面中的source code)
下载后的文件名:wireshark-1.2.2.tar.bz2
cd到文件目录解压:$tar -xvf wireshark-1.2.2.tar.bz2
$cd wireshark-1.2.2
编译安装命令如下:
$./configure
$make
$sudo make install
其中make编译时间会比较长,这样下来就基本安装了。
下面是我这篇文章的关键,也是用ubuntu安装的过程中极有可能遇到的问题,且都是在进行./configure编译过程中出现,两个问题如下:
---------------------------------------------------------------------------------------------------------
问题1:
view plain to clipboardprint?
./configure执行到最后出错
checking for perl... /usr/bin/perl
checking for bison... no
checking for byacc... no
checking for yacc... no
configure: error: I couldn't find yacc (or bison or ...); make sure it's installed and in your path
./configure执行到最后出错
checking for perl... /usr/bin/perl
checking for bison... no
checking for byacc... no
checking for yacc... no
configure: error: I couldn't find yacc (or bison or ...); make sure it's installed and in your path
解决办法:
view plain to clipboardprint?
sudo apt-get install flex bison
sudo apt-get install flex bison
yacc(Yet Another Compiler Compiler),是Unix/linux上一个用来生成编译器的编译器(编译器代码生成器)。
如想深入了解google下。
问题2:
view plain to clipboardprint?
configure: error: Header file pcap.h not found; if you installed libpcap from source, did you also do "make install-incl", and if you installed a binary package of libpcap, is there also a developer's package of libpcap,
and did you also install that package?
configure: error: Header file pcap.h not found; if you installed libpcap from source, did you also do "make install-incl", and if you installed a binary package of libpcap, is there also a developer's package of libpcap,
and did you also install that package?
问题原因是ubuntu下缺少pcap.h等文件。
解决方法:
编译安装libpcap.
在www.tcpmp.org页面中可下载源码:libpcap-1.0.0.tar.gz
cd到文件目录:
view plain to clipboardprint?
$tar -xvf libpcap-1.0.0.tar.gz
$cd libpcap-1.0.0.tar.gz
$./configure
$make
$sudo make install
$tar -xvf libpcap-1.0.0.tar.gz
$cd libpcap-1.0.0.tar.gz
$./configure
$make
$sudo make install
----------------------------------------------------------------------------------------------------------------------------------------------------
采用上面的方法后再回到文章前面的步骤:
$cd wireshark-1.2.2编译安装:
$./configure
$make
$sudo make install
这样就安装好了。
启动方法:进入wireshark-1.2.2,输入命令:view plain to clipboardprint?
$sudo ./wireshark
$sudo ./wireshark
这里如果不用sudo,则wireshark找不到网络设备接口,这主要与权限有关,启动时注意下就行。
② linux下使用libpcap进行数据捕获,能够将捕获到的数据包保存为pcap文件
libpcap和winpcap最大的不同就是 内核缓冲区,用户缓冲区等都不能设置,没有提供这样的函数,要编译libpcap源码。
另外,linux Fedora 下使用libpcap时,找不到pcap.h,查找发现安装了libpcap的库但是没有头文件。解决办法是:
1.如何查看是否安装libpcap? #rpm -aq libpcap
2.查找libpcap源,yum search pcap
3.安装libpcap, yum install libpcap-devel.i386
③ Linux下按装snort遇到了包依赖关系.
要么yum install snort;
要么yum install rpmlib libdnet.1 libpcap.so.1 libsfbpf.so.0,然s后rpm -ivh snort-2.9.2.3-1.RHEL6.I386.RPM
要不rpm -ivh snort-2.9.2.3-1.RHEL6.I386.RPM --nodeps装上,但不一定能用
④ 请教tshark源码整合
tshark是wireshark的指令形式,有些情况下抓取网络包但是不想调用图形界面时,可以用tshark
1、下载libpcap源代码
http://www.tcpmp.org/
libpcap-x.x.x.tar.gz libpcap安装源文件
2. 解压缩libpcap
tar zxvf libpcap-x.x.x.tar.gz
进入到解压缩后的文件夹中 cd libpcap- x.x.x
3. 安装flex
apt-get install flex
4. 安装bison
apt-get install biso
5. 安装libpcap
./configure
make
make install
6. 安装tshark
apt-get install tshark
7、指令应用
tshark是wireshark命令行形式
1)指定要监听的接口
-i <接口名称>
比如-i eth2.如果不用-i指定监听的接口,则默认为接口列表中第一个非回环接口(-D打印接口列表)
2)可监听的接口列表
-D 打印接口列表
3)设置cap过滤条件
-f <过滤参数设置>
A. 设置监听的协议类型:-f udp/tcp/http 注:协议类型必须为小写
B. 设置源ip: -f“src host x.x.x.x”
C. 设置源端口: -f“src port xx”
D. 设置源ip和源端口: -f “srchost x.x.x.x and src port xx”
E. 设置目的ip: -f“dst host x.x.x.x”
F. 设置目的端口: -f“dst port xx”
G. 设置目的ip和端口: -f “dsthost x.x.x.x and port xx”
注:设置ip或端口时,必须用双引号
4)设置抓包数
-c <包数量> ,比如-c 15 表示抓15个包就停止
5) 设置cap包容量
-a filesize:NUM
其中NUM为filesize的包容量,用此命令需要用-w命令指定保存的文件包。NUM单位为KB
6)保存文件
-w <文件名称>
-w后面是要保存到的文件名字,也可以指定路径
7) 在屏幕中显示抓包的内容
-S
8)指定数据包的最大长度
-s <数据包长度>,单位为bytes
其他指令请参照在线帮助
⑤ 如何通过源码安装升级libpcap
安装libcap开发包后,再试试看 sudo apt-get install libpcap-dev sudo apt-get install libnids-dev sudo apt-get install libnet1-dev