用Libpcap
进行编程的第一步往往是获取网卡设备列表,以下是官方示例代码。
示例代码(根据WinPcap文档修改,适用于UNIX/Linux):
#include <cstdio>
#include "pcap.h"
int main()
{
pcap_if_t *alldevs;
pcap_if_t *d;
int i=0;
char errbuf[PCAP_ERRBUF_SIZE];
/* 获取本地机器设备列表 */
if (pcap_findalldevs( &alldevs, errbuf) == -1)
{
fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errbuf);
exit(1);
}
/* 打印列表 */
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 0;
}
/* 不再需要设备列表了,释放它 */
pcap_freealldevs(alldevs);
}

这篇博客介绍了如何利用Libpcap库在UNIX/Linux系统中获取网卡设备列表,为网络编程做准备。官方示例代码被详细解析,适用于进行Libpcap编程的初学者。
2299

被折叠的 条评论
为什么被折叠?



