我试图在 Windows 7 上的 cygwin 下安装 libpcap 但出现此错误: $ ./配置 。 。 。 。 。 配置:错误:请参阅安装以获取更多信息
我该如何解决这个问题? 我正在使用 libpcap-1.0.0 这是最新版本。
http://mathieu.carbou.free.fr/wiki/index.php?title=How_to_install_Winpcap_/_Libpcap_under_Cygwin
libpcap开发包可以从 http://www.winpcap.org/devel.htm
详细步骤如下:
设置Winpcap
下载并解压包。我们将在本示例中使用 WpdPack_4_0_1.zip。
像这样复制库:
- WpdPack\Lib\libpacket.a 到 cygwin\lib\
- WpdPack\Lib\libwpcap.a 到 cygwin\lib\
创建文件夹cygwin\usr\include\pcap\
将所有标头从 WpdPack\Include 复制到 cygwin\usr\include\winpcap\
确保您已安装 Winpcap 库并且它们位于您的路径中,输入:
which packet.dll which wpcap.dll
对我来说,它们位于 /cygdrive/c/WINDOWS/system32/
使用 Cygwin 构建示例
打开 cygwin 提示符到 WpdPack\Examples-pcap asic_dump\ 并执行:
基本转储:
CFLAGS="-g -Wall -mno-cygwin -I /usr/include/pcap" LIBS="-lwpcap" PROG="basic_dump" gcc $CFLAGS -c $PROG.c gcc $CFLAGS -o $PROG.exe $PROG.o $LIBS ./$PROG.exe
basic_dump_ex:
CFLAGS="-g -Wall -mno-cygwin -I /usr/include/pcap" LIBS="-lwpcap" PROG="basic_dump_ex" gcc $CFLAGS -c $PROG.c gcc $CFLAGS -o $PROG.exe $PROG.o $LIBS ./$PROG.exe
如果列表:
CFLAGS="-g -Wall -mno-cygwin -I /usr/include/pcap" LIBS="-lwpcap" PROG="iflist" gcc $CFLAGS -c $PROG.c gcc $CFLAGS -o $PROG.exe $PROG.o $LIBS ./$PROG.exe
pcap_filter(和其他):
I think you can catch the pattern ;) Only replace PROG=... by the program name and it should compile.
UDP转储:
CFLAGS="-g -Wall -mno-cygwin -I /usr/include/pcap" LIBS="-lwpcap -lwsock32" PROG="UDPdump" gcc $CFLAGS -c $PROG.c gcc $CFLAGS -o $PROG.exe $PROG.o $LIBS ./$PROG.exe
您可以通过与 pool.ntp.org 进行时间同步来进行测试 示例。
libpcap 源代码包含部分(但不是全部)Windows 支持。 用于捕获网络流量的机制非常依赖于操作系统(这就是 libpcap 存在的原因 - 向应用程序隐藏该详细信息)。 在 UN*Xes 上,该机制是操作系统的一部分,因此 libpcap 不必提供该机制。
在 Windows 上,操作系统中没有这样的机制,因此 WinPcap 结合了内核模式驱动程序、与驱动程序通信的低级库以及使用低级库的 libpcap 模块。
libpcap 源代码不包含驱动程序或低级库,因此不足以构建适用于 Windows 的 libpcap 版本。
正如其他答案所示,您需要 WinPcap。