我需要在VxWorks 7中动态更改MAC地址。
MAC地址已正确更改。
更改MAC地址后,我将无法使用telnet并ping接口。
使用VxWorks 7,Arm,dcc。
// in usrAppInit()
struct ifreq ifr;
int s;
s = socket(AF_INET,SOCK_DGRAM,0);
memcpy(ifr.ifr_name,"eth0",5);
ifr.ifr_addr.sa_data[0] = 0x01;
ifr.ifr_addr.sa_data[1] = 0x02;
ifr.ifr_addr.sa_data[2] = 0x03;
ifr.ifr_addr.sa_data[3] = 0x04;
ifr.ifr_addr.sa_data[4] = 0x05;
ifr.ifr_addr.sa_data[5] = 0x06;
ifr.ifr_addr.sa_family = AF_INET;
ioctl(s, SIOCSIFLLADDR, &ifr); // eth0 mac address changed to 01:02:03:04:05:06
close(s);
更改MAC地址后,
“ ping”和“ telnet”无法从PC到达该接口。
“ arp”命令显示新的MAC地址。
答案 0 :(得分:1)
感谢JaeMann Yeh,这对我有用:
return $this->renderAjax('form path',$model);
答案 1 :(得分:0)
您可以使用ifconfig更改c文件中的MAC地址。例如,
ipcom_run_cmd("ifconfig qfec0 lladdr 00:11:22:33:44:55");
我已经对其进行了测试,并且效果很好。
答案 2 :(得分:0)
您已在字节0中设置了最低有效位。这表示它是一个多播地址,请不要将您的mac地址设置为多播地址。
将其设置为其他内容,例如
ifr.ifr_addr.sa_data[0] = 0x00;