更改MAC地址会导致在VxWorks中停止telnet

时间:2019-06-18 10:42:30

标签: vxworks

我需要在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地址。

3 个答案:

答案 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;