解决wincap中“无法解析的外部符号 pcap_freealldevs、pcap_findalldevs_ex“,函数main中引用了该符号

解决wincap中"无法解析的外部符号 pcap_freealldevs、pcap_findalldevs_ex",函数main中引用了该符号

报错截图在这里插入图片描述
在同时出现这两种报错的情况下,发现是链接lib库的时候没有进入x64文件夹。
在这里插入图片描述

将库目录中的路径的lib文件夹再进一个链接到x64就可以了。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
以下是使用WinPcap进行嗅探的示例代码: ```c++ #include <pcap.h> #include <stdio.h> #include <stdlib.h> #include <string.h> void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data); int main() { char errbuf[PCAP_ERRBUF_SIZE]; pcap_t *fp; pcap_if_t *alldevs, *d; int inum, i=0; struct pcap_pkthdr header; const u_char *pkt_data; // 获取本机所有网络接口 if(pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) == -1) { fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errbuf); exit(1); } // 打印所有网络接口信息 for(d=alldevs; d; d=d->next) { printf("%d. %s", ++i, d->name); if (d->description) printf(" (%s)\n", d->description); else printf(" (No description available)\n"); } // 让用户选择一个网络接口 printf("Enter the interface number (1-%d):",i); scanf("%d", &inum); if(inum < 1 || inum > i) { printf("\nInterface number out of range.\n"); pcap_freealldevs(alldevs); return -1; } // 跳转到用户选择的网络接口 for(d=alldevs, i=0; i< inum-1 ;d=d->next, i++); // 打开网络接口 if ( (fp= pcap_open(d->name, 100, PCAP_OPENFLAG_PROMISCUOUS, 1000, NULL, errbuf) ) == NULL) { fprintf(stderr,"\nError opening adapter\n"); pcap_freealldevs(alldevs); return -1; } printf("\nListening on %s...\n", d->description); // 开始嗅探 pcap_loop(fp, 0, packet_handler, NULL); pcap_close(fp); pcap_freealldevs(alldevs); return 0; } void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data) { printf("Packet size: %d bytes\n", header->len); } ``` 该示例代码使用了`pcap`库进行嗅探,并且在`packet_handler`函数打印出了每个抓到的数据包的大小。在运行代码时,程序会列出所有可用的网络接口以供用户选择,并在用户选择后开始嗅探指定的网络接口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值