testvnet3.c

来自「嵌入式系统的网络仿真」· C语言 代码 · 共 59 行

C
59
字号
//----------------------------------------------------------------------------//test set/get guestif  mac addr//----------------------------------------------------------------------------#include <net/if.h>#include <sys/ioctl.h>//#include "if_vnet.h"//from linux/sockios.h#define SIOCGIFADDR	0x8915		/* get PA address		*/#define SIOCSIFADDR	0x8916		/* set PA address		*/void main(void){int tapif_fd;struct ifreq ifr;char buf[1024];unsigned char paddr[6];printf("test vnet ioctl\n");tapif_fd = open("/dev/net/vnet", 2);if(tapif_fd<0){ 	perror("open");exit(-1);};printf("open vnet ok!\n");  if (ioctl(tapif_fd, SIOCGIFADDR, (void *) paddr) < 0) {    printf("get mac addr error\n");    exit(-1);}printf("ioctl vnet get mac addr ok, addr is %x:%x:%x:%x:%x:%x \n", paddr[0],paddr[1],paddr[2],paddr[3],paddr[4],paddr[5]);paddr[0]=0;paddr[1]=1;paddr[2]=2;paddr[3]=3;paddr[4]=4;paddr[5]=5;if (ioctl(tapif_fd, SIOCSIFADDR, (void *) paddr) < 0) {    printf("set mac addr error\n");    exit(-1);}printf("ioctl vnet set mac addr ok\n");if (ioctl(tapif_fd, SIOCGIFADDR, (void *) paddr) < 0) {    printf("get mac addr error\n");    exit(-1);}printf("ioctl vnet get mac addr ok, addr is %x:%x:%x:%x:%x:%x \n", paddr[0],paddr[1],paddr[2],paddr[3],paddr[4],paddr[5]);/*while(1){ sleep(30);};*/}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?