android 4.0 系统设置dhcp获取ip增加option60 选项

搜索了很多资料,介绍都是修改/system/core/libnetutils下面的代码

dhcp 获取ip过程;

1、先由客户端发送discover消息,这个消息属于广播,网内的dhcp都会收到这个消息,一般在这个消息内增加option60选项

2、服务器如果能够提供给客户端一个ip地址,则会给客户端发送一个offer消息,里面包含提供的ip消息

3、客户端一般按照谁最先给提供ip,就给那个服务器做出请求,如果没有option的限制的话。如果增加了,则只接受指定服务器提供的ip,并给这个服务器发送request消息

4、服务器给客户端发送ack确认消息,或者nak消息

抓包分析,就这几个消息。

按照这个说明,应该在构建discover消息里面加入option60选项,

在dhcp_msg.c init_dhcp_discover_msg函数里面,增加了OPT_CLASS_ID即60选项

编译这个文件夹,将生成的libnetutils.so push到/system/lib下,重启机顶盒抓包,没在discover里面发现option60选项,郁闷吧,改了n久,加了很多打印,始终就是没有。

继续查资料。

有人说在dhcp_do_request函数里面(dhcp_utils.c)修改damon_cmd,这个原理实在是不明白。在这个文件加了LOGD打印,果然出来了,打印damon_cmd如下:

daemon_cmd  dhcpcd_eth0: -h android-ce2fe875ba037a46 eth0

看来dhcp是走了这个函数了。兴奋中。离成功说明不远了啊。哈哈

snprintf(daemon_cmd, sizeof(daemon_cmd), "%s_%s:-i %s -h %s %s", DAEMON_NAME,daemon_suffix,DHCP_OPTION60, prop_value, interface);

DHCP_OPTION60是指定的option60的字符串

加入了-i 选项就是option60了,打印如下

daemon_cmd  dhcpcd_eth0:-i STB -h android-ce2fe875ba037a46 eth0


编译,重新将so库push到机顶盒上,抓包,发现ok了。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值