1

ARP応答の送信者のIPアドレスを知る必要があります。recvfromを使用してみましたが、IPアドレスを取得できません。ご協力いただきありがとうございます。

それぞれがARP要求をIPアドレスに送信する子プロセスがいくつかあります。問題は、ソケットが未加工であるために応答がすべての子に届くため、応答がどの子に到着したかを何らかの方法で知る必要があることです。

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;

}

応答を800000ナノ秒待って、メッセージがどのIPで送信されたかを知りたいのですが、recvfromを使用すると、MACアドレスしか取得できません。

4

1 に答える 1

1

エミール、私はすでに同じ質問に答えました。

ここをクリック:

同じ質問

答えが気に入らない場合は、話し合いましょう。ただし、同じトピックで新しい質問を開くことは避けてください。

于 2013-01-10T12:03:43.040 に答える