admin 管理员组

文章数量: 1184232

两台装置的mac地址不能相同!!!

mac地址相同,即使ip地址不同,执行ping命令的时候,也会造成网络不同,或者丢失数据报现象。

通过串口连接装置,否则down命令之后网口就无法启动了。(或者有多个网口也行)

设置装置Mac地址的三步骤:

1)ifconfig eth0 down            //eth0  为对应的网卡名称,下同。

2)ifconfig eth0 hw ether 00:01:22:33:11:02   //(有的装置的mac地址的第一个字节的第二位必须是0

3)ifconfig eth0 down

ps:

mac地址是6个字节;ipV4是4个字节。

我们知道,接入在同一网络中的装置IP不同相同,mac地址也不能相同。

工程中,我们一般都会根据实际情况修改ip地址,但由于mac地址是出厂带的,我们一般不需要修改,实际中,遇到出厂的板卡mac地址都是一样的,这样就需要我们手动修改mac,十分的麻烦。

解决思路:通过修改将ip地址的4个字节嵌入到mac地址中,这样修改ip的同时,就能够修改mac地址,并且保证mac地址不会重复!

技巧:

ifconfig eth0 hw ether 00:01:22:33:11:02

mac地址中的 00:01:22:33:11:02 实际上是十六进制数

我们在写程序的时候,可以不必添加间隔的冒号,而是直接写,效果是一样的。

char *ip = "192.168.1.12";
unsigned uip= inet_addr(ip);
char mac[256]={0};
char cmd[256]={0};
sprintf(mac,"0001%08x",uip);//利用ip地址组成6个字节的mac地址的后4个字节,前两个字节我们定义为0001
sprintf(cmd,"ifconfig eth0 hw ether %s",mac);
system(cmd);//设置网卡eth0的mac地址

本文标签: 地址 系统 Linux Mac