1 #include <sys/socket.h> 2 #include <netinet/in.h> 3 #include <arpa/inet.h> 4 #include <libnet.h> 5 #include <unistd.h> 6 #include <stdio.h> 7 #include <string.h> 8 #include <sys/errno.h> 9 #include <stdlib.h> 10 11 #define ETH "enp0s25" 12 13 void err_sys(const char *msg) 14 { 15 printf("%s:%s\n" ,msg, strerror(errno)); 16 exit(0); 17 } 18 int main(int argc, char*argv) 19 { 20 libnet_t * lib; 21 char err_buf[50]; 22 23 if((lib = libnet_init(LIBNET_LINK, "enp0s25", err_buf)) == NULL) 24 { 25 printf("libnet_init error : %s\n", err_buf); 26 exit(0); 27 } 28 29 return 0; 30 }
用户权限问题,CAP_NET_RAW需要的权限较大,root肯定可以,不是root的话,配置较复杂,可查CAP_NET_RAW的关键词
感谢, 确实解决问题了