发送arp请求报文

栏目: 服务器 · 发布时间: 6年前

#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;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Discrete Mathematics and Its Applications

Discrete Mathematics and Its Applications

Kenneth H Rosen / McGraw-Hill Science/Engineering/Math / 2003-04-22 / USD 132.81

Discrete Mathematics and its Applications is a focused introduction to the primary themes in a discrete mathematics course, as introduced through extensive applications, expansive discussion, and deta......一起来看看 《Discrete Mathematics and Its Applications》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具