プログラムを使用して、受信したパケットから送信元アドレスを抽出します。しかし、次のコードでの & 演算子の使用がわかりません:
==> アドレスを変換する関数
struct in_addr {
unsigned long int s_addr; }
char *inet_ntoa(struct in_addr in);
==> パケットを受信
recvfrom(sockfd, buffer, sizeof(struct iphdr) + sizeof(struct icmphdr), 0, (struct sockaddr *)&connection, &addrlen)) == -1)
===> 表示元アドレス
struct iphdr* ip_reply;
/*code */
ip_reply = (struct iphdr*) buffer;
/*code */
printf("RCV ip->daddr = %s \n",inet_ntoa(*((struct in_addr *)&ip_reply->saddr)));
&
で使用する必要があるのはなぜ&ip_reply->saddr
ですか?