有没有一种方法可以使用libpcap在Linux中获取接口的IP地址?
我找到了这个获取Linux上接口的IP地址,但那不使用pcap。
此外,在pcap示例中,它说类似于this的东西应该可以获取您的IP,但它会给您您的网络地址。
有没有一种方法可以使用libpcap在Linux中获取接口的IP地址?
我找到了这个获取Linux上接口的IP地址,但那不使用pcap。
此外,在pcap示例中,它说类似于this的东西应该可以获取您的IP,但它会给您您的网络地址。
pcap_findalldevs
函数:#include <pcap/pcap.h>
#include <arpa/inet.h>
static char errbuf[PCAP_ERRBUF_SIZE];
int main() {
pcap_if_t *alldevs;
int status = pcap_findalldevs(&alldevs, errbuf);
if(status != 0) {
printf("%s\n", errbuf);
return 1;
}
for(pcap_if_t *d=alldevs; d!=NULL; d=d->next) {
printf("%s:", d->name);
for(pcap_addr_t *a=d->addresses; a!=NULL; a=a->next) {
if(a->addr->sa_family == AF_INET)
printf(" %s", inet_ntoa(((struct sockaddr_in*)a->addr)->sin_addr));
}
printf("\n");
}
pcap_freealldevs(alldevs);
return 0;
}
sudo ./pcap
的输出:
eth0: 192.168.2.1
usbmon1:
usbmon2:
usbmon3:
usbmon4:
usbmon5:
any:
lo: 127.0.0.1