关于linxu下发送ARP REPLY程序
前几天在网上看了点关于ARP的程序,想写一个ARP REPLY程序,写了一部分时发现还是不懂相关知识。现在我简单接受一下程序。
Uo"\Q,z!sL4?DtLinux伊甸园论坛
^2iPIzE5[au)I1: 定义了 struct sockaddr att_addr , att_addr.sa_family=PF_PACKET, strcpy(att_addr.sa_data, "eth0")这句话是抄别人的,实话说我不太懂,大概意思是选择现用的网卡,我想那样的话IP它能自动取出。www.linuxeden.compA/i }}u l9p
www.linuxeden.comS2XwmCa
2:创建socket, sockfd=socket(PF_PACKET,SOCK_PACKET,htons(0x800)) ,我想不需要bind吧。
[
O?%IcU+T
/F"t ra#y:G5D'|3:封装数据包,定义 char p_send[1024], 封装ethenr_header ,(struct ether_header *)p_send . 封装 ether_arp, (struct ether *)(p_send+sizeof(ether_header)),填充数据Linux伊甸园论坛F!^R$LM3g
/cpFx4Xqi7Xn'mY
FY+uY7Z4:然后发送数据 sendto(sockfd,p_send,p_length,0,&att_addr,sizeof(att_addr))
~8hK"DFI6Nj~+D6X&J:X s G\h3V
高手们看看有什么问题吗?是不是我哪地方做得不对了?为什么我用tcpdump听不到包?
|