你是否正在寻找关于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.cinit_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了。
以上就是关于option60的全部内容,相信你一定会非常满意。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-4697-1.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/38170.html