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 .....} 这样的数据形式

相关推荐
小付爱coding1 分钟前
跟着官网学LangChain【第01章:模型(Models)】
服务器·网络·langchain
Ares-Wang2 分钟前
网络》》 IS-IS 路由协议
网络
Black__Jacket4 分钟前
Ubuntu下,/dev下,无法读取到CH340串口芯片的端口号
linux·运维·ubuntu
清泉影月20 分钟前
Linux:Squid正向代理实现内网访问互联网
linux·运维·服务器
切糕师学AI25 分钟前
ARM 中的 SVC 监管调用(Supervisor Call)
linux·c语言·汇编·arm开发
陌上花开缓缓归以28 分钟前
linux jiffies 初始化不为0问题分析
linux·arm开发
霖霖总总32 分钟前
[小技巧39]Linux 文件与命令查找工具(which、whereis、locate、find)全面解析
linux·运维
xlq2232235 分钟前
6.Linux权限
linux
ayaya_mana1 小时前
在 CentOS 7/RHEL 7 上安装并切换至新版内核
linux·运维·centos
移幻漂流1 小时前
C/C++并发编程详解:如何写出优秀的并发程序
c语言·开发语言·c++