在libpcap中,我们可以通过简单的
pcap_t * handle = pcap_open_live(NULL , INT_MAX , 0 , 500 , errbuf);
if (handle == NULL)
{
exit(1);
}
//Put the device in sniff loop
pcap_loop(handle , -1 , process_packet , NULL);在pcap_open_live的第一个参数中,NULL只是一张通配符。我想知道在PcapPlusPlus中是否有类似的内容。
另外,我试着简单地调用pcpp::PcapLiveDeviceList::getInstance().reset(),,但是每次我尝试运行它时,都会导致崩溃。
发布于 2021-12-14 20:14:05
为了实现向后兼容性,NULL可以工作,但是要在Linux上捕获所有接口(或者,使用苹果在macOS、macOS上提供的libpcap ),您应该传递字符串"any“。
作为接口名称的"any“应该与所有libpcap一起工作,包括PcapPlusPlus。
这在Windows或除Linux或macOS以外的UN*Xes上不起作用。在其他OSes上没有“所有接口”设备名称。这是libpcap的限制,所以它是对原始libpcap和所有包装器的限制。
https://stackoverflow.com/questions/70345965
复制相似问题