[求助] 【BearPi-HM Nano,玩转鸿蒙“碰一碰”】-6-代码运行疑惑②

sun63312   2021-7-26 23:01 楼主

小熊派HarmonyOS代码疑问-2

  在使用D4_iot_tcp_sever这个例程时碰到两个问题:

问题1:DHCP后我找不到获取IP地址的方式

  先上代码:wifi_connect.c

225812spiqe6q7melq75xq.png

  ①官方给的的代码:

  netifapi_netif_common(g_lwip_netif, dhcp_clients_info_show, NULL);

确实能打印出IP等相关的信息,如下图:

225812f919wi1e8mb29fbd.png

  但是其中的

   dhcp_clients_info_show

  并没有开源,学习不到里面是怎么把IP调用出来的

 

  ②然后尝试直接从g_lwip_netif中获取IP地址

  使用代码如下:

   printf("**********localIP:%s******************\r\n"ip4addr_ntoa(&g_lwip_netif->ip_addr.u_addr.ip4));

   printf("**********netmask:%s******************\r\n"ip4addr_ntoa(&g_lwip_netif->netmask.u_addr.ip4));

  打印出来的结果很神奇:

  获取ip_addr的打印出来是netmask(网络掩码)IP,获取netmask打印出来的是gw(网关)的IP,至于获取gw(网关)得到的IP是啥都不知道。如下图:

225812b5p1pj1ss2zjsjgu.png

  想请教一下哪位大佬知道小熊派有什么办法获取DHCP后的IP地址。

 

问题2复位重启小熊派,每次DHCP后获取MAC都不一样,导致路由一直重新分配IP

  情况如下图:

225812xhlts88lhhwphz9l.png

  第一次获取mac为b011317276d7IP地址为192.168.1.170

  然后按复位键重启,第二次获取的mac和IP就变了如下图:

225812xfk0afj53vv22f62.png

  第次获取mac为b01131f2147fIP地址为192.168.1.171

 

  想请教一下哪位大佬知道小熊派有什么办法获取DHCP获取时MAC可以保持不变。

 

回复评论 (3)

lwip不是静态设置的mac地址吗?

默认摸鱼,再摸鱼。2022、9、28
点赞  2021-7-28 17:34
引用: freebsder 发表于 2021-7-28 17:34 lwip不是静态设置的mac地址吗?

是呀,以前用lwip都没有碰到过这样的问题。小熊派官方给的例程,每次重启就给一个新的mac,然后路由重新分配IP。还要再研究研究

点赞  2021-7-29 10:15
引用: sun63312 发表于 2021-7-29 10:15 是呀,以前用lwip都没有碰到过这样的问题。小熊派官方给的例程,每次重启就给一个新的mac,然后路由重新 ...

是不是哪里随机分配的?mac不固定这尼玛就坑壁了。

默认摸鱼,再摸鱼。2022、9、28
点赞  2021-7-29 14:09
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复