我需要知道ARP回复发送者的IP地址。我试过使用RecvFrom,但无法从中获取IP地址。谢谢你的帮助。
我有一些子进程,每个进程都向一个IP地址发送一个ARP请求。问题是响应会到达所有子进程,因为套接字是原始的,所以我需要知道响应到达的子进程。我尝试了

struct sockaddr_ll linkLayerAddr;
char buf[32];
int sockaddr_len=sizeof(linkLayerAddr);
memset(&linkLayerAddr,0,sizeof(linkLayerAddr));
fcntl(sock,F_SETFL,O_NONBLOCK);
nanosleep(&time1,NULL);

if(recvfrom(sock,buf,sizeof(buf),0,(struct sockaddr*)&linkLayerAddr,&sockaddr_len)==-1){

info.status=0;
}//se primeste raspunsul
else{
info.status=1;

}

我等待80万纳秒的回复,我想知道消息的IP地址。有了RecvFrom,我只能得到MAC地址。

最佳答案

埃米尔,我已经回答了同样的问题。
单击此处:
Same question
如果你不喜欢这个答案,让我们来讨论一下,但不要用同样的话题提出新问题

08-16 03:21