#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 报文
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Coming of Age in Second Life
Tom Boellstorff / Princeton University Press / 2008-04-21 / USD 29.95
The gap between the virtual and the physical, and its effect on the ideas of personhood and relationships, is the most interesting aspect of Boellstorff's analysis... Boellstorff's portrayal of a virt......一起来看看 《Coming of Age in Second Life》 这本书的介绍吧!