小熊派HarmonyOS代码疑问-2
在使用D4_iot_tcp_sever这个例程时碰到两个问题:
问题1:DHCP后我找不到获取IP地址的方式
先上代码:wifi_connect.c中
①官方给的的代码:
netifapi_netif_common(g_lwip_netif, dhcp_clients_info_show, NULL);
确实能打印出IP等相关的信息,如下图:
但是其中的
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是啥都不知道。如下图:
想请教一下哪位大佬知道小熊派有什么办法获取DHCP后的IP地址。
问题2:复位重启小熊派,每次DHCP后获取MAC都不一样,导致路由一直重新分配IP。
情况如下图:
第一次获取mac为b011317276d7;IP地址为192.168.1.170。
然后按复位键重启,第二次获取的mac和IP就变了如下图:
第二次获取mac为b01131f2147f;IP地址为192.168.1.171。
想请教一下哪位大佬知道小熊派有什么办法获取DHCP获取时MAC可以保持不变。
引用: freebsder 发表于 2021-7-28 17:34 lwip不是静态设置的mac地址吗?
是呀,以前用lwip都没有碰到过这样的问题。小熊派官方给的例程,每次重启就给一个新的mac,然后路由重新分配IP。还要再研究研究
引用: sun63312 发表于 2021-7-29 10:15 是呀,以前用lwip都没有碰到过这样的问题。小熊派官方给的例程,每次重启就给一个新的mac,然后路由重新 ...
是不是哪里随机分配的?mac不固定这尼玛就坑壁了。