LWIP获取IP地址方法(stm32)

方法:

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 );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值