您尚未登录。

楼主 #1 2021-04-07 14:24:31

工控小白
会员
注册时间: 2020-05-20
已发帖子: 39
积分: 38

请问嵌入式设备的网卡mac地址可以随意设置吗?

AA:BB:CC:DD:EE:FF

离线

#2 2021-04-07 14:58:19

哇酷小二
wechat微信:whycan_cn
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,378
积分: 1902
个人网站

Re: 请问嵌入式设备的网卡mac地址可以随意设置吗?

据说MAC地址的前3bit得是0, 否则有可能通被交换机/路由器封杀,

---------------
以上是道听途说,没有确认过.





离线

#3 2021-04-07 16:32:51

tpu
会员
注册时间: 2020-06-15
已发帖子: 34
积分: 36.5

Re: 请问嵌入式设备的网卡mac地址可以随意设置吗?

AA的0位必须是0. 否则就是多播地址了.

离线

#4 2021-04-08 11:28:45

xfdr0805
会员
注册时间: 2020-07-23
已发帖子: 291
积分: 344

Re: 请问嵌入式设备的网卡mac地址可以随意设置吗?

11:22:33:44:55:66  我印象当中,好像这地址可以用

离线

#5 2021-04-08 11:38:01

奔跑的孩子
会员
注册时间: 2021-01-28
已发帖子: 51
积分: 31.5

Re: 请问嵌入式设备的网卡mac地址可以随意设置吗?

xfdr0805 说:

11:22:33:44:55:66  我印象当中,好像这地址可以用

满足二楼的条件。

离线

#6 2021-04-08 11:57:52

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 450
积分: 317.5
个人网站

Re: 请问嵌入式设备的网卡mac地址可以随意设置吗?

能用个P,这刚好是个组播地址。
有很大概率被有组播策略的交换机丢弃,能过的都是不标准的。

广播地址是全为1,即 FF:FF:FF:FF:FF:FF 这个大家都知道。
组播/多播地址是是第48位为1,后面的位与IP地址有换算关系(具体看相关资料)

测试时,建议前3字节使用网卡芯片厂家的OUI,后3字节自己生成,局域网中不重复即可。
正式产品,是需要购买OUI的。

>arp -a
  224.0.0.2             01-00-5e-00-00-02     静态
  224.0.0.22            01-00-5e-00-00-16     静态
  224.0.0.251           01-00-5e-00-00-fb     静态
  224.0.0.252           01-00-5e-00-00-fc     静态
  239.255.255.250       01-00-5e-7f-ff-fa     静态
  255.255.255.255       ff-ff-ff-ff-ff-ff     静态
>netsh interface ipv6 show neighbors
ff02::1 33-33-00-00-00-01  永久
ff02::2 33-33-00-00-00-02  永久
ff02::1:2 33-33-00-01-00-02  永久
ff02::1:3 33-33-00-01-00-03  永久
ff02::1:ff00:86b 33-33-ff-00-08-6b  永久
ff02::1:ff0e:8497 33-33-ff-0e-84-97  永久
ff02::1:ff22:6d50 33-33-ff-22-6d-50  永久

离线

#7 2021-04-08 11:59:40

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 450
积分: 317.5
个人网站

Re: 请问嵌入式设备的网卡mac地址可以随意设置吗?

用 00:11:22:33:44:55 吧,

或这样

    /* OUI 00-80-E1 STMICROELECTRONICS. */
    stm32_eth_device.dev_addr[0] = 0x00;
    stm32_eth_device.dev_addr[1] = 0x80;
    stm32_eth_device.dev_addr[2] = 0xE1;
    /* generate MAC addr from 96bit unique ID (only for test). */
    stm32_eth_device.dev_addr[3] = *(rt_uint8_t *)(UID_BASE + 4);
    stm32_eth_device.dev_addr[4] = *(rt_uint8_t *)(UID_BASE + 2);
    stm32_eth_device.dev_addr[5] = *(rt_uint8_t *)(UID_BASE + 0);

离线

#8 2021-04-08 13:13:33

xfdr0805
会员
注册时间: 2020-07-23
已发帖子: 291
积分: 344

Re: 请问嵌入式设备的网卡mac地址可以随意设置吗?

确实是这个,记错了,顺道向大神学习一下

aozima 说:

用 00:11:22:33:44:55 吧,

或这样

    /* OUI 00-80-E1 STMICROELECTRONICS. */
    stm32_eth_device.dev_addr[0] = 0x00;
    stm32_eth_device.dev_addr[1] = 0x80;
    stm32_eth_device.dev_addr[2] = 0xE1;
    /* generate MAC addr from 96bit unique ID (only for test). */
    stm32_eth_device.dev_addr[3] = *(rt_uint8_t *)(UID_BASE + 4);
    stm32_eth_device.dev_addr[4] = *(rt_uint8_t *)(UID_BASE + 2);
    stm32_eth_device.dev_addr[5] = *(rt_uint8_t *)(UID_BASE + 0);

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn