LWIP的DHCP后获取IP


一、简介

芯片:STM32

TCP/IP协议栈:LWIP

前提条件:开启DHCP服务


二、获取方法

1.等DHCP分配完后主动获取

            DHCP会把获取到的路由器自动分配的IP地址放在API函数dhcp_start里面的struct netif*参数,只需要等待DHCP分配完后,查看该结构体的成员信息就可可以得到DHCP分配后的地址


	while( ip_addr_cmp( &(gnetif.ip_addr) , &ipaddr ) )
	{
		vTaskDelay(1);
	}
	printf("DHCP:%d.%d.%d.%d\r\n",((gnetif.ip_addr.addr)&0x000000ff),
								(((gnetif.ip_addr.addr)&0x0000ff00)>>8),
								(((gnetif.ip_addr.addr)&0x00ff0000)>>16),
								((gnetif.ip_addr.addr)&0xff000000)>>24);

2.路由器分配后立即得到

dhcp服务有一个底层函数dhcp_bind,修改该函数内容即可获得IP地址
代码如下(示例):

//u32_t ip值
printf("dhcp_bind(): IP: 0x%08"X32_F"\r\n",ip4_addr_get_u32(&dhcp->offered_ip_addr));

//点分十进制
uint32_t ret_ip = ip4_addr_get_u32(&dhcp->offered_ip_addr);
printf("ip:%d.%d.%d.%d\r\n",ret_ip&0xFF, (ret_ip&0xFF00)>>8 , (ret_ip&0xFF0000)>>16 , (ret_ip&0xFF000000)>>24 );

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值