linux系统中使用socket直接发送ARP数据
这个重点是如这样创建socket: sock_send = socket ( PF_PACKET , SOCK_PACKET , htons ( ETH_P_ARP) ) ; 其后所有收发的数据都是原始的网络数据包。 代码如下:在X86和ARM平台上都测试通过。调用arp_scaner_init之后 ,调用send_arp来发送ARP数据包,thread_read_arp中就会收到对端的反馈,并将其保存。 在此非常感谢其他同仁的分享,使我学会了这个用法。 #include <unistd.h> #include <errno.h> #include <netdb.h> #include <signal.h> #include <sys/socket.h> #include <sys/poll.h> #include <sys/ioctl.h> #include <netinet/if_ether.h> #include <net/if_arp.h> #include <netinet/udp.h> #include <netinet/ip.h> #include <stdio.h> #include <stdarg.h> #include <net/if.h> #include <arpa/inet.h> #include <string.h> #include "adapter