RFC 950,第11页:
接收地址掩码请求的网关应该返回它 地址掩码字段设置为32位掩码的标识位 子网和网络,用于接收请求的子网。
我想获取一个主机地址掩码,并为本地网关和其他IP构建一个ICMP地址掩码请求包。我使用tcpdump -i eth0 icmp
并找到ICMP address mask request
数据包已发送。但我没有找到任何响应。有什么问题吗?主要代码是:
struct icmp *picmp;
/* ICMP header */
picmp = (icmp_t *)send_buf;
picmp->icmp_type = ICMP_MASKREQ; // Address Mask Request
picmp->icmp_code = 0;
picmp->icmp_id = pid;
picmp->icmp_seq = npkt++;
len = 12; // ICMP header length
picmp->icmp_cksum = 0;
picmp->icmp_cksum = in_cksum((u_short *)picmp, len);
sendto(sock_fd, send_buf, len, 0, pr->p_addr, pr->addr_len);