是的,在Bouffalo SDK中有多种方式可以禁用DHCP并使用静态IP配置。
通过命令行接口禁用DHCP
SDK提供了 netifd_nano
命令行工具来管理网络接口。 1 你可以使用以下命令停止DHCP客户端:
netifd_nano dhcp stop -i <interface_name>
通过API函数禁用DHCP
components/net/netbus/netifd_nano/netifd_nano.c
使用netifd_nano API
SDK提供了 netifd_dhcp_stop
函数来停止指定接口的DHCP客户端: 2
int netifd_dhcp_stop(const char* ifname);
该函数的实现会调用lwIP的 netifapi_dhcp_stop
来停止DHCP: 3
使用lwIP API直接控制
你也可以直接使用lwIP提供的DHCP控制函数: 4
components/net/lwip/lwip/src/include/lwip/netifapi.h
netifapi_dhcp_stop(netif);
设置静态IP
停止DHCP后,你需要手动配置静态IP地址。可以使用lwIP的 netifapi_netif_set_addr
函数: 5
netifapi_netif_set_addr(netif, &ip_addr, &netmask, &gateway);
components/net/lwip/lwip/src/apps/dhcpd/dhcp_server_raw.c
ip4addr_aton(DHCPD_SERVER_IP, &default_addr);
814 ip4addr_aton("255.255.255.0", &default_mask);
815 ip4addr_aton("0.0.0.0", &default_gw);
816 netifapi_netif_set_addr(netif, &default_addr, &default_mask, &default_gw);
817 }