DHCP解析

本文深入探讨了DHCP(动态主机配置协议)的工作流程,包括客户端如何获取IP地址,服务器如何分配网络参数,以及DHCP的主要配置步骤。通过学习,读者将能够理解DHCP在局域网中的关键作用,并掌握设置和管理DHCP服务器的基本技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

					 DCHPC解析
 首先用到的是一个解析命令行输入函数getopt_long,这个可以自行查阅,我这里简单说一下,udhcpc 要带入的参数,要 配置ip,首先你要输入一个接口,将这个获取到的ip配置给他,其他的就根据实际情况添加,如我的命令输入行是uchcpc -f -i lanbr1 -h CLOUDNET --logname VLAN1 -p /var/run/ehdcpc_388888888 --ifindex 388888888  这个解析出来就是要往lanbr1这个接口配置获取的ip,其他的是根据我这块板子的信息做的相应的配置。
 看代码之前先把逻辑搞清楚,一般的逻辑是,开始创建个socket就在局域网内发广播包,告诉局域网内的所有设备我要配置ip,需要有设备回应并给我发送回一个ip,路由器()收到这个广播包之后,就去地址池里面找一个没有用的ip,发会给要配置ip的设备(我把他称位src地址),拿到设备后,对其ip检查,讲这个ip地址发到整个局域网内,问下有人用这个ip地址没,当没有人回应时,这个ip是可用的,就将其配置到自己的网络接口上。
 具体到我的这块板子,因为考虑到可以配置静态和动态,开机启动静态不启动udhcpc,配置静态的时候也不会启用dhcpc,所以做了一个通知链来监控,如果这个接口启动或者停用,IP地址的改变都会触发这个通知链,当有时间发生时,通知链句柄处理,句柄函数先判断处于什么状态如果是动态再启用dhcpc。逻辑说了半天还是来看看代码怎么实现的。
 由于是应用程序,所以先找到udhcpc的程序的入口函数udhcpc_main,不要问我为什么不是main,这个自己可以搞定的,我这里uhcpc要和外界通信,所以初始化了消息队列,信号函数。再通过getopt_long对输入参数进行解析并配置到相关的接口,udhcp_sp_setup设置信号函数,读取当前要配置接口read_interface。准备工作做好之后就要按照自己设计的流程启动dhcpc了,我的是先让dhcpc进入一个永久等待之中,然后由上面的通知链句柄函数发送信号过来,什么时候要启动dhcoc,什么时候要停止dhcpc,具体的我的代码是change_mode(LISTEN_NONE);state = RELEASED;timeout = FOREVE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值