linux下C语言实现ARP数据包发送
2009/12/9 linux下C语言实现ARP数据包发送_涛声依旧
yrlaydj | (0/20) | | | | |
我的消息 我的空间 我的应用 百度空间 百度首页 退出
涛声依旧
主页 博客 相册 | 个人档案 | 好友
查看文章
linux C ARP
下 语言实现 数据包发送
2009-05-07 09:21
可以随意发送ARP 数据包,源码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ETH_HW_ADDR_LEN 6
#define IP_ADDR_LEN 4
#define ARP_FRAME_TYPE 0x0806
#define ETHER_HW_TYPE 1
#define IP_PROTO_TYPE 0x0800
#define OP_ARP_REQUEST 2
#define OP_ARP_QUEST 1
#define DEFAULT_DEVICE "eth0"
char usage[] =
{"send_arp: sends out custom ARP packet. ferrysnow@ \nusage : send_arp src_ip_addr src_hw_addr
targ_ip_addr tar_hw_addr number"};
struct arp_packet
{
u_char targ_hw_addr[ETH_HW_ADDR_LEN];
u_char src_hw_addr[ETH_HW_ADDR_LEN];
u_short frame_type;
u_short hw_type;
u_short prot_type;
u_char hw_addr_size;
u_char prot_addr_size;
u_short op;
u_char sndr_hw_addr[ETH_HW_ADDR_LEN];
u_char sndr_ip_addr[IP_ADDR_LEN];
u_char rcpt_hw_addr[ETH_HW_ADDR_LEN];
u_char rcpt_ip_addr[IP_ADDR_LEN];
u_char padding[18];
};
void die(char*);
…/…/4c78c5274b6b560b90… 1/5
2009/12/9 linux下C语言实现ARP数据包发送_涛声依旧
void get_ip_addr(struct in