#include <stdio.h> #include <stdlib.h> #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <arpa/inet.h> #include <net/ethernet.h> #include <netpacket/packet.h> #include <string.h> #include <net/if.h> #define SRC_MAC { 0x00,0x0C,0x29,0x6F,0x57,0xE7 }//源MAC地址 #define DEST_MAC { 0x00,0x0C,0x29,0xD3,0xD6,0xF7 }//目的MAC地址 struct arppacket { unsigned char dest_mac[ETH_ALEN];//接收方MAC unsigned char src_mac[ETH_ALEN];//发送方MAC unsigned short type; //0x0806是ARP帧的类型值 unsigned short ar_hrd;//硬件类型 - 以太网类型值0x1 unsigned short ar_pro;//上层协议类型 - IP协议(0x0800) unsigned char ar_hln;//MAC地址长度 unsigned char ar_pln;//IP地址长度 unsigned short ar_op;//操作码 - 0x1表示ARP请求包,0x2表示应答包 unsigned char ar_sha[ETH_ALEN];//发送方mac unsigned char ar_sip[4];//发送方ip unsigned char ar_tha[ETH_ALEN];//接收方mac unsigned char ar_tip[4];//接收方ip } __attribute__ ((__packed__)); int main(int argc,char *argv[]) { int fd = 0; struct in_addr s,r; struct sockaddr_ll sl; struct arppacket arp={ DEST_MAC, SRC_MAC, htons(0x0806), htons(0x01), htons(0x0800), ETH_ALEN, 4, htons(0x01), SRC_MAC, {0}, DEST_MAC, {0} }; fd = socket(AF_PACKET,SOCK_RAW,htons(ETH_P_ALL)); if (fd < 0) { printf("socket error\n"); return -1; } memset(&sl, 0, sizeof(sl)); inet_aton("192.168.11.220", &s); memcpy(&arp.ar_sip, &s, sizeof(s)); inet_aton("192.168.11.192", &r); memcpy(&arp.ar_tip, &r, sizeof(r)); sl.sll_family = AF_PACKET; sl.sll_ifindex = IFF_BROADCAST; while (1) { if (sendto(fd, &arp, sizeof(arp), 0, (struct sockaddr*)&sl, sizeof(sl)) <= 0) printf("send error\n"); else printf("send success\n"); sleep(1); } close(fd); return 0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 关于HTTP报文请求方法和状态响应码
- 使用Socket进行HTTP请求与报文讲解
- 前端必知必会HTTP请求系列(三)HTTP报文内的http信息
- 详解 HTTP 报文(二):Web 容器是如何解析 HTTP 报文的
- 报文批量处理方法简介
- 详解 http 报文
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
High Performance Python
Micha Gorelick、Ian Ozsvald / O'Reilly Media / 2014-9-10 / USD 39.99
If you're an experienced Python programmer, High Performance Python will guide you through the various routes of code optimization. You'll learn how to use smarter algorithms and leverage peripheral t......一起来看看 《High Performance Python》 这本书的介绍吧!