设备中如何实现类似gopro给iphone分配ip但是不修改dns的功能

负责研发运动DV,功能有参考gopro,发现gopro有个特别功能,iphone连上gopro的ap热点之后,iphone打开移动网络(2/3/4 G网络)仍然可以上网!按理说,连上任意一个局域网,经过dhcp之后,设备就应该只能经过指定网关和域名服务器来访问外网啊,很奇怪,gopro是怎么实现的呢?

观察发现,连上gopro ap的iphone ip及网关变了,dns还是原来那个,也就是说,gopro没有分配dns地址!手头这个类android系统用的是dnsmasq,开启的热点会分配dns地址,是不是这个区别让gopro实现了这个功能呢?现在的问题就是如何实现实现这个功能,看看是不是gopro的效果了。

连接ap之后,手机端执行dhcpd来获取ip地址等信息,android或是类android设备的热点端一般都是用dnsmasq来给设备分配ip的。dhcp的过程其他地方查得到,这里不说了,dhcp的时候有个阶段是给sta发送ip地址、网关地址以及dns地址的,只需把填充dns地址的那小段代码屏蔽即可实现不分配dns的功能,而且经过测试,这正是gopro实现的功能---连上设备ap开启2/3/4G网络还可以通过移动网络上网。

主要修改有:

external\dnsmasq\src\rfc2131.c 屏蔽2190-2192行:

/*if (in_list(req_options, OPTION_DNSSERVER) &&
 !option_find2(netid, config_opts, OPTION_DNSSERVER))
option_put(mess, end, OPTION_DNSSERVER, INADDRSZ, ntohl(context->local.s_addr));
*/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值