上篇文章我们成功发送了arp请求,这里我们就需要等待并看看能不能收到来自我们需探测ip的arp回复,如果收到,则该主机为活动的,因为这个等待arp返回需要等待一段时间,这里我之间写出来,实际用的时候,你们需要写成线程,并在发送arp请求之前调用。
定义需要的变量
pcap_if_t * alldevs;
pcap_if_t *d;
pcap_t * adhandle;//定义包捕捉句柄
char errbuf[PCAP_ERRBUF_SIZE];//错误缓冲最小为256
pcap_addr_t *pAddr;
struct bpf_program fcode;
char packet_filter[] = "ether proto \\arp";
int result;
struct pcap_pkthdr * header;
const u_char * pkt_data;
struct in_addr temp; <span style="white-space:pre"> </span>unsigned long netmask; //子网掩码
1.查找本机网卡,选择网卡,打开网卡,参考上一篇的解释,这里直接上代码