TCPDUMP在Libpcap上开发。
首先需要编译libcap。
网上那么多教程,下载地址都只给了一个英文的官网首页, 你尽可以试试,从里面找到下载地址都要费半天时间。 \color{red}网上那么多教程,下载地址都只给了一个英文的官网首页,\\ 你尽可以试试,从里面找到下载地址都要费半天时间。 网上那么多教程,下载地址都只给了一个英文的官网首页,你尽可以试试,从里面找到下载地址都要费半天时间。
下载地址:https://www.tcpdump.org/release/
本文使用的libcap版本是libpcap-1.10.5,tcpdump版本是tcpdump-4.99.5
编译libcap前要设置操作系统、指令集、目录等。切换到解压目录执行如下命令:
./configure --prefix=/home/ljg/tcpdump/tools --host=arm-linux --target=arm-linux CC=arm-linux-gnueabihf-gcc --with-pcap=linux
然后执行make命令即可。
编译TCPDUMP前要设置操作系统、指令集、目录等。
需要注意的是:因为tcpdump的编译依赖于libcap,所以命令中"–prefix=/home/ljg/tcpdump/tools"这一字段值要与libcap的设置保持一致。
切换到TCPDUMP解压目录执行如下命令:
./configure --prefix=/home/ljg/tcpdump/tools --host=arm-linux --target=arm-linux CC=arm-linux-gnueabihf-gcc ac_cv_linux_vers=2
编译成功后的截图如下:
tcpdump命令格式:
tcpdump -i netcard_name port 12345 -w xxxxx.pcap
另外还需要提醒的非常重要的一点:
假如编译出来的程序,被上传到嵌入式设备,
并且运行时有如下错误,请在
M
a
k
e
f
i
l
e
中的
C
F
L
A
G
S
和
L
D
F
L
A
G
S
中添加
"
−
−
s
t
a
t
i
c
"
选项。
\color{red}假如编译出来的程序,被上传到嵌入式设备,\\ 并且运行时有如下错误,请在Makefile中的\\ CFLAGS和LDFLAGS中添加"--static"选项。
假如编译出来的程序,被上传到嵌入式设备,并且运行时有如下错误,请在Makefile中的CFLAGS和LDFLAGS中添加"−−static"选项。
参考链接:
https://blog.csdn.net/qq_34539334/article/details/116839446