gpt4 book ai didi

c++ - 用C++获取网络流量

转载 作者:太空宇宙 更新时间:2023-11-04 12:37:37 24 4
gpt4 key购买 nike

我正在尝试监控每月的网络使用情况。由于默认的 Windows 10 数据使用页面不起作用,我借此机会学习了 C++,因为我熟悉 Python 和 PHP 等语言。

经过数小时的 Google 搜索,我得出的结论是 WinPcap 是我应该使用的模块。我是从这里下载的:https://www.winpcap.org/devel.htm

我将 .zip 解压缩到我的 C++ 控制台应用程序文件夹中。所以我的应用程序在 C:\Visual Studio\ProjectName123\ 中,我将 WpdPack/ 提取到那里。

我正在尝试使用他们的示例代码:

#include "pch.h"
#include "WpdPack\Include\pcap\pcap.h"

main()
{
pcap_if_t *alldevs;
pcap_if_t *d;
int i = 0;
char errbuf[PCAP_ERRBUF_SIZE];

/* Retrieve the device list from the local machine */
if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL /* auth is not needed */, &alldevs, errbuf) == -1)
{
fprintf(stderr, "Error in pcap_findalldevs_ex: %s\n", errbuf);
exit(1);
}

/* Print the list */
for (d = alldevs; d != NULL; d = d->next)
{
printf("%d. %s", ++i, d->name);
if (d->description)
printf(" (%s)\n", d->description);
else
printf(" (No description available)\n");
}

if (i == 0)
{
printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
return;
}

/* We don't need any more the device list. Free it */
pcap_freealldevs(alldevs);
}

我遇到了几个错误,首先是:identifier "PCAP_SRC_IF_STRING"is undefined

按照 T 的示例非常令人沮丧,并且它无法正常运行。对 C++ 感到非常沮丧。

帮助将不胜感激,具体解释为什么我的代码在this example之后完美,不运行。

最佳答案

该示例代码具有误导性;他们打算用字符串值替换 PCAP_SRC_IF_STRING 而不是按原样使用它。要使用 pcap_findalldevs_ex(),您需要将第一个参数作为字符串传递,指定它应该在何处寻找适配器。您应该会发现以下方法效果更好:

 pcap_findalldevs_ex("rpcap://",...

我建议您使用这个作为引用:WinPCAP exported functions

关于c++ - 用C++获取网络流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55682240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com