linux 发送自定义包裹 c 程序

cpp 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in_systm.h>
#include <netinet/if_ether.h>



int main(void) {
	int s;
	int sd;
	char iface[256] = "wlp1s0";
	char packet[26];
	struct sockaddr sa;

	s = socket(PF_PACKET,SOCK_PACKET,htons(ETH_P_ALL));
	if(s < 0){perror("socket error\n");exit(EXIT_FAILURE);}

	memset(&sa,0,sizeof(sa));
	sa.sa_family = PF_PACKET;
	snprintf(sa.sa_data,256,"%s",iface);

	memset(&packet,0,sizeof(packet));

	for(int i=0;i<=100;i++){
		sd = sendto(s,packet,sizeof(packet),0,&sa,sizeof(sa));
		if(sd < 0){perror("sendto error\n");exit(EXIT_FAILURE);}
	}

	return EXIT_SUCCESS;
}

如果你要定义包裹 你就应该 把包裹定义成这样:

packet[26] = {0xff,0xff .....} 这样的数据形式

相关推荐
Jane-6667778 分钟前
C语言——栈与队列
c语言·开发语言
h7997109 分钟前
wsl使用代理网络
网络
richxu202510011 小时前
C语言<<超全.超重要>>知识点总结
c语言·开发语言
MeowKnight9581 小时前
【C】使用C语言举例说明逻辑运算符的短路特性
c语言·1024程序员节
ghie90901 小时前
Reactor 模式结合 epoll
网络
陌路201 小时前
Linux18--进程间的通信总结
linux
2401_858286112 小时前
OS36.【Linux】简单理解EXT2文件系统(2)
linux·运维·服务器·数据结构·文件系统·ext2
Zach_yuan2 小时前
程序地址空间
android·linux·运维·服务器
梁萌2 小时前
Linux安装BiliNote
linux·运维·服务器·docker·bilinote
小安运维日记2 小时前
RHCA - DO374 | Day03:通过自动化控制器运行剧本
linux·运维·数据库·自动化·ansible·1024程序员节