[問題] ARP request 問題
請問一下:
因為我要查某一個IP之MAC
所以利用libnet_bulid_arp來建立arp封包: ARPOP_REQUEST(0x01)
接著我用ioctl的SIOCGARP來取得MAC
可是奇怪的是,我用SIOCGARP都查不到ARP,arp -n也看不到
可是用wireshark看可以看到已經有回覆了(ARPOP_REPLY(0x02))
而且因為我找不到ARP又送3次封包,也都有回覆。
我另外找到了別人的code,他說要force linux to arp,他就不用libnet來送ARP request
int arp_force(in_addr_t dst)
{
struct sockaddr_in sin;
int i, fd;
if ((fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)
return (0);
memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = dst;
sin.sin_port = htons(67);
i = sendto(fd, NULL, 0, 0, (struct sockaddr *)&sin, sizeof(sin));
close(fd);
return (i == 0);
}
這樣是可以成功沒錯,可是我想知道為什麼會這樣呢?
明明要收到ARP REPLY的幫包啊
感謝看完這麼長的問題。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.251.120
※ 編輯: AzHuang 來自: 140.112.251.120 (07/29 03:00)
推
07/29 09:00, , 1F
07/29 09:00, 1F
推
07/29 12:34, , 2F
07/29 12:34, 2F
→
07/29 12:35, , 3F
07/29 12:35, 3F
→
08/04 01:40, , 4F
08/04 01:40, 4F
→
08/04 01:41, , 5F
08/04 01:41, 5F
→
08/04 01:42, , 6F
08/04 01:42, 6F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章